这是为什么?
c++吧
全部回复
仅看楼主
level 9
影圣天 楼主
函数原型为
void test(string&a);
我这样调用:
test(string("aaa"))
却错了,这是为什么呢?
[呵呵][呵呵][呵呵][呵呵][呵呵][呵呵][呵呵][呵呵][呵呵][呵呵]
2016年04月19日 07点04分 1
level 9
影圣天 楼主
[呵呵]
2016年04月19日 07点04分 2
发代码。
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
aaa=string(“aaa”);
test(aaa);
定义用了引用传递,调用需要传一个左值,我猜是这样。
2016年04月19日 09点04分 5
level 6
const string&这样定义参数才行,不然你直接写string应该也行。aaa是一个不可变的string对象,你传string的引用对象不匹配。
2016年04月19日 09点04分 6
level 11
上面都说了,左值引用,填右值
2016年04月19日 10点04分 7
是是是[乖]
2016年04月19日 10点04分
1