我注意到我通常使用常量引用作为返回值或参数.我认为原因是它与在代码中使用非引用几乎相同.但它肯定需要更多的空间和功能声明变得更长.我很喜欢这样的代码,但我认为有些人发现它编程风格很糟糕.
你怎么看?是否值得编写const int& over int?我认为无论如何它都是由编译器优化的,所以也许我只是在浪费时间编码,一个?
这是一段简单的C++代码片段:
A foo(){
A a; // create a local A object
return a;
}
void bar(const A & a_r){
}
bar(foo());
Run Code Online (Sandbox Code Playgroud)
为什么函数栏的参数必须是const引用,而不仅仅是引用?
Edit1:我知道引用是为了避免复制开销.和const是只读的.但是在这里我必须使它成为const引用,否则如果我删除"const",g ++将向我抛出一个错误.
Edit2:我的猜测是foo()的返回对象是一个临时对象,不允许更改临时对象的值?