关于String类 C++实现的一个问题
其中重载+的实现是这样的
String String::operator+(const String &str) const//重载+
{
String newString;
newString.length = length + str.size();
newString.data = new char[newString.length + 1];
strcpy(newString.data, data);
strcat(newString.data, str.data);
return newString;
}
有网友提出了疑问:
这里会有内存泄露吧,String newString;会申请一个字节的内存空间,重新赋值后原来的1个字节空间没有释放!
他说的对吗? 如果对,重载+ 应该如何实现?