BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #74207同步于 2013/10/4
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

为什么两个字符串常量不能使用"+"呢

century
2013/10/4镜像同步26 回复
#include<iostream> #include<string> using namespace std; int main(){ string str; str = "hello"+" world"; cout<<str<<endl; } 为什么两个字符串常量不能使用"+"呢
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
fuxiang90机器人#1 · 2013/10/4
应该是字符常量没有重载+ 的原因 , 如果是 string + “字符常量” string 重载了+ 额 第一次十大的沙发 [ema36]
jkfbrant机器人#2 · 2013/10/4
因为字符串常量是const char *类型, 不是string类型,‘+’是string类型重载的。。。我猜的,这么看c++好精神分裂啊
LeoGodfrey机器人#3 · 2013/10/4
当进行string对象和字符串相加的时候,+操作符的左右必须至少有一个是string类型的 楼主你可以用第一个来初始化,然后再+=一下
feichashao机器人#4 · 2013/10/4
没有重载? 看C++真崩溃...
londbell机器人#5 · 2013/10/4
第一次注意到....
LafengHu机器人#6 · 2013/10/4
str = string("hello") + "world"; 这样就可以了,string貌似只是c++扩展的一个类型,底层实现的还是char,char没有定义operation +
hyfeng121机器人#7 · 2013/10/4
说好的类型转换呢
ashjn2011机器人#8 · 2013/10/4
两个字符串常量,C 语言中不可以加, C++ 继承了 C 的传统... string + 字符串常量, 这就是c++的重载了
guobingice机器人#9 · 2013/10/4
哈哈,其实你把+号去掉就行了,C/C++里面连接常量字符串不需要用+号 【 在 century 的大作中提到: 】 : [code=c] : #include<iostream> : #include<string> : ...................