【发布时间】:2016-11-15 19:41:32
【问题描述】:
与将引用作为参数传递相比,返回引用有哪些优点和缺点。
我有一个类,它有一个成员变量(小代码示例中的“localVariable”),其他类应该通过 get-functions 获取这些成员变量的值。
目前我有以下功能:
在 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++
【问题讨论】:
-
您的第一个版本显示未定义的行为,请参阅here。
-
请尝试创建一个Minimal, Complete, and Verifiable Example 来说明您的问题和您所询问的代码。例如最后一个示例将无法编译,并且在第一个示例中
localVariable似乎实际上并不是一个局部变量。value1是什么? -
试试看这个(可能是重复的):stackoverflow.com/questions/12083451/…
-
如果是第一种情况,我可以写
if (getValue() == 5),而不必先创建一个单独的变量来存储值。巨大的优势。 -
@BoPersson 不幸的是,这个第一个版本不起作用。
标签: c++ parameters reference return constants