我必须为
下面的字符串运算符创建一个实现String operator +=(const String &str); // this is my declaration which is in my header file
目标是返回一个字符串,该字符串是通过附加调用方法的String附加传递的String而形成的。
到目前为止,这是我的代码/实现,但它有错误,我被卡住了。
String::String::operator +=(const String &str)
{
strcat(contents, str.contents);
len += str.len;
}
我该如何解决这个问题?这两个错误是第一个'String'和'operator'
这是运算符的错误:声明与“String String :: operator + =(const String& str)”
不兼容和String的那个;缺少显式类型(假设为“int”)
答案 0 :(得分:3)
这是你的问题:
String::String::operator +=(const String &str)
^^
两个标记的字符应替换为空格,以便您有一个返回类型:
String String::operator +=(const String &str)
{
//...
}
答案 1 :(得分:1)
您正在修改调用运算符的String
。它是一个复合运算符(+
和=
运算符的混合),因此您需要返回对已修改的String
的引用:
String& operator +=(const String &str);
String& String::operator +=(const String &str)
{
strcat(contents, str.contents);
len += str.len;
return *this;
}