函数返回从另一个成员函数

时间:2016-08-10 15:13:31

标签: c++ reference

我知道返回const引用有时会引起麻烦,比如thread中接受的答案。 但是,我不确定下面使用带有隐式this指针返回的对象的const引用是否总是安全的?

class foo
{
    private:
    std::vector<double> vec;

    public:
    const std::vector<double>& Get_vec() const
    {
       return vec;
    }

    void some_method()
    {
       const std::vector<double> & vec2 = Get_vec();  // this->Get_vec

       // do something with vec2
    }
}

1 个答案:

答案 0 :(得分:1)

本声明

const std::vector<double> & vec2 = Get_vec();  

相当于

const std::vector<double> & vec2 = vec;  

在其方法中使用对类的数据成员的引用没有任何问题(我的意思是方法void some_method() )。在任何情况下,对其方法内对象的数据成员的引用的生命周期都短于对象本身的生命周期。