返回参考的函数

时间:2019-03-03 02:05:15

标签: function reference return

我了解到,当您想在赋值运算符的left side上使用该函数时,它很有用。它还提到“当函数返回引用时,它返回指向其返回值的隐式指针”。但是,我对带有对变量的返回类型引用的函数的理解是,返回变量是该变量的别名。

来自returning-a-reference-from-a-function-in-c/

中的示例
class DigInto
{
private:
    int secret;
public:
    DigInto() { secret = 150; }
    int &GetSecretVariable() { return secret; }
    void Write() { cout << secret << endl; }
};

主要功能如下:

int main(int argc, char *argv[])
{
    DigInto inst;
    inst.Write();
    int &pry = inst.GetSecretVariable();
    pry = 30;
    inst.Write();
    return 0;
}

这对我来说很有意义,因为变量pry现在是inst::secret的别名。此外,pry的声明,即int &与返回类型inst::GetSecretVariable()匹配。

我的问题是:

  1. 为什么说它正在返回一个隐式指针,指向其返回值 变量返回别名时的值?

  2. 为什么我们需要返回引用?我们为什么不能只声明 GetSecretVariable为:

    int GetSecretVariable() { return secret; } 并将pry设置为: int pry = inst.GetSecretVariable(); 如果我们不打算更改inst::secret的值?

0 个答案:

没有答案