这个为啥不能重载??
String& String::operator+=(const String& str){
char *ss = new char[_size + strlen(str._string)+1];
strcpy(ss, _string);
strcat(ss, str._string);
_size = strlen(ss);
delete[] _string;
_string = ss;
return *this;
}
String& String::operator+=(const char* ch)
{
if(NULL != ch)
{
char *str = new char[_size + strlen(ch)+1];
strcpy(str, _string);
strcat(str, ch);
_size = strlen(str);
delete[] _string;
_string = str;
}
return *this;
}
一生成解决方案就有如下错误:
1>f:\peixunzuoye\cpludplud_练习\cpp_7\cpp_7\extence.cpp(1499): error C2679: 二进制“=”: 没有找到接受“std::string”类型的右操作数的运算符(或没有可接受的转换)
1> f:\peixunzuoye\cpludplud_练习\cpp_7\cpp_7\extence.cpp(1320): 可能是“String &String::operator =(const String &)”
1> f:\peixunzuoye\cpludplud_练习\cpp_7\cpp_7\extence.cpp(1321): 或 “String &String::operator =(const char *)”
1> 尝试匹配参数列表“(String, std::string)”时
========== 全部重新生成: 成功 0 个,失败 1 个,跳过 0 个 ==========
这个括号里面的类型不是不一样吗??为啥会有这个错误??