Solved: 20 - Constructors
This commit is contained in:
@@ -8,7 +8,7 @@ namespace oop {
|
|||||||
class StringBuilder {
|
class StringBuilder {
|
||||||
public:
|
public:
|
||||||
StringBuilder() = default;
|
StringBuilder() = default;
|
||||||
explicit StringBuilder(std::string initial);
|
explicit StringBuilder(const std::string &initial);
|
||||||
StringBuilder(const StringBuilder& other);
|
StringBuilder(const StringBuilder& other);
|
||||||
auto operator=(const StringBuilder& other) -> StringBuilder&;
|
auto operator=(const StringBuilder& other) -> StringBuilder&;
|
||||||
~StringBuilder() = default;
|
~StringBuilder() = default;
|
||||||
|
|||||||
@@ -2,12 +2,12 @@
|
|||||||
|
|
||||||
namespace oop {
|
namespace oop {
|
||||||
|
|
||||||
StringBuilder::StringBuilder(std::string initial) {
|
|
||||||
// TODO: Initialize buffer_ from initial
|
|
||||||
(void)initial;
|
|
||||||
}
|
|
||||||
|
|
||||||
StringBuilder::StringBuilder(const StringBuilder& other) : buffer_(other.buffer_) {}
|
StringBuilder::StringBuilder(const std::string &initial)
|
||||||
|
: buffer_(initial.begin(), initial.end()) {}
|
||||||
|
|
||||||
|
StringBuilder::StringBuilder(const StringBuilder& other)
|
||||||
|
: buffer_(other.buffer_) {}
|
||||||
|
|
||||||
auto StringBuilder::operator=(const StringBuilder& other) -> StringBuilder& {
|
auto StringBuilder::operator=(const StringBuilder& other) -> StringBuilder& {
|
||||||
if (this != &other) {
|
if (this != &other) {
|
||||||
@@ -17,8 +17,7 @@ auto StringBuilder::operator=(const StringBuilder& other) -> StringBuilder& {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void StringBuilder::append(const std::string& text) {
|
void StringBuilder::append(const std::string& text) {
|
||||||
// TODO: Append all characters from text
|
std::ranges::copy(text, std::back_inserter(this->buffer_));
|
||||||
(void)text;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
auto StringBuilder::str() const -> std::string {
|
auto StringBuilder::str() const -> std::string {
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ TEST(Constructors, InitialAndAppend) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST(Constructors, CopySemantics) {
|
TEST(Constructors, CopySemantics) {
|
||||||
oop::StringBuilder original("C++");
|
const oop::StringBuilder original("C++");
|
||||||
oop::StringBuilder copy = original;
|
oop::StringBuilder copy = original;
|
||||||
copy.append("11");
|
copy.append("11");
|
||||||
EXPECT_EQ(original.str(), "C++");
|
EXPECT_EQ(original.str(), "C++");
|
||||||
|
|||||||
Reference in New Issue
Block a user