【发布时间】:2009-11-12 04:08:25
【问题描述】:
这是一个简单的C++代码sn-p:
A foo(){
A a; // create a local A object
return a;
}
void bar(const A & a_r){
}
bar(foo());
为什么函数 bar 的参数必须是 const 引用,而不仅仅是引用?
Edit1:我知道引用是为了避免复制开销。和 const 是只读的。但是这里我必须让它成为一个const引用,否则如果我删除“const”,g++会向我抛出一个错误。
Edit2:我的猜测是 foo() 的返回对象是一个临时对象,不允许更改临时对象的值?
【问题讨论】:
-
它的函数本身决定它的参数是否应该是const。换句话说,你应该提供bar的内容。