中易网

为什么标准C++中两个直接字符串常量不能相加

答案:1  悬赏:30  
解决时间 2021-03-22 00:25
为什么标准C++中两个直接字符串常量不能相加
最佳答案
1:const std::string hello = “Hello”;
const std::string message = “Hello” + “, world” + exclam;第一部分是可以编译成功的,而第二部分是不行的。为什么?因为在第二部分的第二句,赋值号的右边 先做”Hello” + “,world” 操作,而对于”Hello”和”,world”都是const char[]类型的,在标准C++中这个类型是不能做 “+”操作的。而对于第一部分,hello + “,world”可以进行成功操作,因为hello为std::string类型,对于这种类型,标准库中重载了其与char[]类型之间的”+”操作符,所以是可以的,并且返回值是std::string类型,当然再与右面的exclam操作也没问题了。对于string类型的“+”操作符,在标准库中重载了string与string的+操作,string与char[]的+操作,以及string与char的+操作。也就是说’x'+hello也是可以的。所以,为什么两个直接字符串不能相加?很简单一句话,因为C++标准库中没有实现“+”号对于char[]类型的重载以支持char[] + char[]操作。C++标准库下载
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
DNA复制分子机理的研究有何实际应用价值?
请问孕妇腿上痒是怎么回事?
excel2003如何插入图片到单元格!
相机故障该怎么调?
dnf阿修罗穿什么异界套配什么首饰好
蠡口 那里有卖img化妆品的
汇通二手车(徐州新沂市)地址好找么,我有些事
张翘楚是什么时候接受乔菲的
我是武汉的。紧急卖房网上如何发布消息?
导航地图能否加入固定单行道功能?
出租车遗失物品找回
外地车一年能办几次进京证?
怎么样才能取得他想勒索的证据
已联网却无法显示网页
蒙哥是竞争,忽必烈是篡位,为什么历史学家们
推荐资讯
samsung LA40N71B 电视说明书该到哪找?
广发车主卡和广发易车联名卡哪个好
四个棱长都是5厘米的正方体木块拼成一个高为1
春天好还是秋天好
有没在深圳顺丰做过的朋友??如果自带面包车
喝绿纤汉方茶不能吃什么
女生170的身高多重算是好身材?
PROE5.0如何导出曲面
我一个外国的朋友想买美瞳 这美瞳能寄到外国
2012款宝马730li机油重置
保定哪里有卖创新的小石头啊?
攸县三中学费多少
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?