1..假如函数参数为引用类型的话,那么传给它一个常量会发生错误,这是我们都知道的事实。但是在初学C++时我们可能会误给它传一个字面值,如例:则会发生main.cpp(14) : error C2664: “test”: 不能将参数1 从“int”转换为“int &”的错误。
这是因为我们初学者经常会忽略字面值也是常量的原因,如果把main中代码改为int m = 3; test(m);则当然不会出错了。这应该也是传递引用的函数有const版本的时候,也会重载它的非const版本的原因吧。
2.传入的参数为const引用时,如果要返回该值,则返回值应修饰为const。如:
这样会发生 main.cpp(8) : error C2440: “return”: 无法从“const int”转换为“int &”的错误。