我知道返回 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/