| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 633 人关注过本帖
标题:这个为啥不能重载??
取消只看楼主 加入收藏
怪叔叔
Rank: 4
来 自:陕西
等 级:业余侠客
威 望:1
帖 子:113
专家分:234
注 册:2013-9-22
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:2 
这个为啥不能重载??
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 个 ==========

这个括号里面的类型不是不一样吗??为啥会有这个错误??
搜索更多相关主题的帖子: 解决方案 return 
2014-04-17 20:52
怪叔叔
Rank: 4
来 自:陕西
等 级:业余侠客
威 望:1
帖 子:113
专家分:234
注 册:2013-9-22
收藏
得分:0 
调用:
String str1("hello");
String str2(" world");
char *ch = " world";
str1 += str2;//出错
str1 += ch//对着
2014-04-17 21:40
怪叔叔
Rank: 4
来 自:陕西
等 级:业余侠客
威 望:1
帖 子:113
专家分:234
注 册:2013-9-22
收藏
得分:0 
哎!程序没有错,是自己太粗心了调用时一个写成了小写string
2014-04-19 08:45
快速回复:这个为啥不能重载??
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.045299 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved