情况一:
func1(string & str);
a) func1(string("hello")); 编译错误
b) string s1 = string("hello"); func1(s1); 编译通过
情况二:
func2(string str)
a) func1(string("hello")); 编译通过
b) string s1 = string("hello"); func1(s1); 编译通过
原因
1 string("hello")等同于常量,不能传递给引用参数
2 引用传递的参数要求是可以进出的,也就是说目的是高效传递一个参数,并且要求这个参数是可以返回的
如果使用匿名传递的方式,参数就等于传递丢失了,传递丢失的东西是找不回来的,匿名也就自然不会对。
这里要先对变量进行命名,然后再传递给应用参数
阅读(1010) | 评论(0) | 转发(0) |