我正在制作自己的字符串类,除了一个之外,一切都运行良好:我正在尝试重载operator +=
运算符,以便我可以做到这一点:
string s1 = "Hello", s2 = " World";
s1 += s2;
所以这就是我尝试的:
// In the string class,
string& operator +=(string const& other)
{
using std::strcpy;
unsigned length = size() + other.size() + 1; // this->size() member
char *temp = new char[length]; // function and a "+ 1" for the
// null byte '\0'
strcpy(temp, buffer);
strcpy(temp, other.data());
delete[] buffer;
buffer = new char[length];
strcpy(buffer, temp); // copy temp into buffer
return *this;
}
但是在我的程序中,当使用上面显示的 main 中的代码时,打印后没有输出。我也没有收到任何错误(甚至没有运行时错误)。为什么会这样,我该如何解决这个实现?
注意:我知道我可以使用std::string
,但我想自己学习如何做到这一点。