请帮助完成赋值重载函数的执行。赋值=运算符超载
这里是指令:
赋值运算符(=),这将源字符串复制到目标字符串。请注意,目标的大小需要调整为与来源相同。
加法(+)和赋值(=)操作符都需要能够级联操作。这意味着String3 = String1 + String2
或String1 = String2 = String3
应该工作。
这里是我的.cpp文件:
int MyString::Length()
{
int counter(0);
while(String[counter] != '\0')
{
counter ++;
}
return (counter);
}
MyString& MyString::operator=(const MyString& rhs)
{
if(this != &rhs)
{
delete [] String;
String = new char[rhs.Length()];
for(int i = 0; i <rhs.Length()+1 ; i++)
{
String[i] = rhs.String[i];
}
}
return *this;
}
这就是所谓的通过的main.cpp文件:
的String1 = String2的= STRING3;
我觉得好像我失去了一些东西。帮助!
在例外的脸想想正确性! – dirkgently 2012-04-28 21:21:12
具体问题是什么? – 2012-04-28 21:22:20
您正在保留'this-> Size'字符,您正在复制'this-> counter'字符。不应该是'rhs.Size'或'rhs.counter'? – 2012-04-28 21:25:17