返回引用与传递引用作为参数

时间:2016-07-13 09:39:09

标签: c++ parameters reference return const

与将引用作为参数传递相比,返回引用有哪些优缺点。

我有一个具有成员变量的类(" 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++

2 个答案:

答案 0 :(得分:0)

按值返回const / reference或object具有可以在表达式中使用的优点,而使用引用需要一个变量来复制对象。

通常,pass / return by value用于小对象,const / reference用于较大对象。请注意,按引用传递/返回也有成本。 Weel,由于移动拷贝/赋值,这在c ++ 11中发生了变化。

另一方面 - 您使用了名称“localVariable” - 如果返回引用,则必须考虑返回的变量在调用返回后仍然必须存在。

答案 1 :(得分:-4)

(第二个不是函数,它是一个方法)。

参考与否,它是一个可读性的案例,问题是更多的功能与方法。函数应返回其主要目标,而不是设置输出参数。通常,函数通常对传入的参数进行操作,并且本质上是算法的。

(实际上上面的示例看起来像一个封装的属性)