我需要关于下面介绍的两个运算符重载函数的帮助。我不确定如何在不实际使用函数定义中的赋值的情况下实现这一点。
我的 .cpp 文件中运算符 + 的代码:
MyString& MyString::operator +(const MyString& rhs)
{
delete [] String;
String = new char[rhs.Size];
Size = rhs.Size;
// needs to be a loop for cascading +
// so that String1=String2+String3+String4 will work
for(int i = 0; i < rhs.Size+1 ; i++)
{
// String[i] + rhs.String[i]; ???
}
return *this;
}
.cpp 文件中 += 运算符的代码:
MyString& MyString::operator+=(const MyString& rhs)
{
delete [] String;
String = new char[rhs.Size];
String = String + rhs.String;
return *this;
}
从 main.cpp 调用:
String1 = String2 + String3 + String4;
String1.Print ();
String2 += String3;
String2.Print ();
我知道我的 .cpp 文件代码是错误的,一些见解会很棒!