請幫助完成賦值重載函數的執行。賦值=運算符超載
這裏是指令:
賦值運算符(=),這將源字符串複製到目標字符串。請注意,目標的大小需要調整爲與來源相同。
加法(+)和賦值(=)操作符都需要能夠級聯操作。這意味着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