与将引用作为参数传递相比,返回引用有哪些优缺点。
我有一个具有成员变量的类(" localVariable"在小代码示例中),并且通过get函数,其他类应该获取这些成员变量的值。
目前我有以下功能:
在 int localVariable;
int getValue(){
return localVariable;
}
据说我很重要,所以使用const引用
以下哪项功能合适? 每个版本的优点和缺点是什么?
int localVariable;
int const & getValue(){
return localVariable;
}
或
int localVariable;
void const getValue(&refValue){
refValue = localVariable;
}
我发现了一些类似的东西,但它并不完全相同,因此我仍然不清楚在我的情况下哪个更好:Returning a pointer vs. passing a reference to an object to store the answer in C++
答案 0 :(得分:0)
按值返回const / reference或object具有可以在表达式中使用的优点,而使用引用需要一个变量来复制对象。
通常,pass / return by value用于小对象,const / reference用于较大对象。请注意,按引用传递/返回也有成本。 Weel,由于移动拷贝/赋值,这在c ++ 11中发生了变化。
另一方面 - 您使用了名称“localVariable” - 如果返回引用,则必须考虑返回的变量在调用返回后仍然必须存在。
答案 1 :(得分:-4)
(第二个不是函数,它是一个方法)。
参考与否,它是一个可读性的案例,问题是更多的功能与方法。函数应返回其主要目标,而不是设置输出参数。通常,函数通常对传入的参数进行操作,并且本质上是算法的。
(实际上上面的示例看起来像一个封装的属性)