这是为什么?
c++吧
全部回复
仅看楼主
level 9
影圣天
楼主
函数原型为
void test(string&a);
我这样调用:
test(string("aaa"))
却错了,这是为什么呢?
2016年04月19日 07点04分
1
level 9
影圣天
楼主
2016年04月19日 07点04分
2
FSHOD
发代码。
2016年04月19日 07点04分
影圣天
回复 FSHOD :没有写类,我只是写了个普通函数而已。问题已经解决,因为临时变量也是常量,所以函数前面再加上const就行啦
2016年04月19日 08点04分
level 7
踮起脚尖的你👦
只是一个构造函数,没名字怎么行
2016年04月19日 08点04分
3
影圣天
没有写类,我只是写了个普通函数而已。问题已经解决,因为临时变量也是常量,所以函数前面再加上const就行啦
2016年04月19日 08点04分
踮起脚尖的你👦
回复 影圣天 :是的
2016年04月19日 08点04分
level 15
◆心之刃◆
用const string&或者string&&
2016年04月19日 08点04分
4
影圣天
大神依旧这么牛逼
2016年04月19日 10点04分
level 10
刘文山QQ
aaa=string(“aaa”);
test(aaa);
定义用了引用传递,调用需要传一个左值,我猜是这样。
2016年04月19日 09点04分
5
level 6
hitori0316
const string&这样定义参数才行,不然你直接写string应该也行。aaa是一个不可变的string对象,你传string的引用对象不匹配。
2016年04月19日 09点04分
6
level 11
125516639
上面都说了,左值引用,填右值
2016年04月19日 10点04分
7
影圣天
是是是
2016年04月19日 10点04分
1