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