给定以下场景,以下哪一项是首选。 m_state 是一个成员评价者,而不是局部变量。
class C
{
private:
double m_state;
public:
double state() const { return m_state; } // returns double
double& state() { return m_state; }
}
===========================================
class C
{
private:
double m_state;
public:
const double& state() const { return m_state; } // returns const double&
double& state() { return m_state; }
}
最佳答案
我不会这样做:
double& state() { return m_state; }
如果您这样做了,您也可以公开m_state
。可能最有意义的是:
const double & state() const { return m_state; }
再一次,当你谈到保存 64 位变量的拷贝(即微优化)以及后一个版本可以重铸为你想要的任何东西时,我会直接复制它:
double state() const { return m_state; }
(并不是说有任何真正的安全性)
关于c++ - 首选哪个,return const double& OR return double,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1684978/