首页 新闻 会员 周边

c++ 中 字符串字面量无法相加的原因是什么?

0
[已解决问题] 解决于 2012-03-30 22:26

string s1="ab"+"c";

是错的

 

+号两边至少需要一个 string变量  为什么啊?

C++
爱的谜语的主页 爱的谜语 | 初学一级 | 园豆:187
提问于:2012-03-29 17:22
< >
分享
最佳答案
1

能相加的原因是因为调用了operator+操作符,两个char*,没有可以使用的的operator + 操作符自然就不可以了。

string operator+ (const string& lhs, const string& rhs);
string operator+ (const char* lhs, const string& rhs);
string operator+ (char lhs, const string& rhs);
string operator+ (const string& lhs, const char* rhs);
string operator+ (const string& lhs, char rhs);
你无法实现两个指针的operator+扩展,事实上,操作符重载对参数是有限制的,至少有一个应该是class type。
奖励园豆:5
zsounder | 老鸟四级 |园豆:2819 | 2012-03-29 20:16

谢谢!

爱的谜语 | 园豆:187 (初学一级) | 2012-03-30 22:25
其他回答(2)
0

默认的类型是char*,char*没有+操作符重载

如果有一个string变量,直接使用了string类型的+操作符,所以可以

2012 | 园豆:21230 (高人七级) | 2012-03-29 19:27
0

学习了。。。

KivenRo | 园豆:1734 (小虾三级) | 2012-03-30 08:59
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册