Solved: 20 - Constructors

This commit is contained in:
2026-08-15 20:56:31 +03:00
parent 564cc1b765
commit 61d91878b9
3 changed files with 8 additions and 9 deletions
@@ -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;
+6 -7
View File
@@ -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++");