January 2018
Intermediate to advanced
374 pages
9h 53m
English
First, we'll create a proxy class representing the concatenation of two strings:
struct ConcatProxy {
const std::string& a;
const std::string& b;
};
Then, we'll construct our own String class, simply consisting of std::string and an overloaded operator+ method. Note that this is an example of how to make and use proxy objects; creating your own String class is not something we recommend:
class String {
public:
String() = default;
String(std::string istr) : str_{std::move(istr)}{}
std::string str_{};
};
auto operator+(const String& a, const String& b) { return ConcatProxy{ a.str_, b.str_ };}
Here's a visual representation of the preceding code snippet:
Lastly, ...