c++ - 返回从另一个成员函数调用的 const 引用的函数

标签 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
    }
}

最佳答案

这个声明

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

相当于

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

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

关于c++ - 返回从另一个成员函数调用的 const 引用的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38877350/

相关文章:

c++ - 在visual studio中,在c++项目的项目属性中,引用窗口是什么?

当我不知道它是否是临时的时,C++ 返回类型

c++ - 为多个 QGraphicsItem 共享同一个 QGraphicsEffect

c++ - SVM 分类器未保存在 ".xml"中?

c++ - 在内存中分配多个结构

c++ - 有没有办法在声明变量后对其进行 constify ?

reference - gmock 多个输入输出参数 SetArgReferee

c++ - 将字符串 Upper char 更改为 Lower char 的程序出错

c++ - 指针仍然可以调用成员函数,在它被设置为 NULL 并删除被调用后

c++ - 返回引用是个好主意吗?