lyx*_*era 5 c++ reference return-value
鉴于以下情况,优选以下哪一种情况.m_state是一个成员 rater而不是局部变量.
class C
{
private:
double m_state;
public:
double state() const { return m_state; } // returns double
double& state() { return m_state; }
}
Run Code Online (Sandbox Code Playgroud)
===========================================
class C
{
private:
double m_state;
public:
const double& state() const { return m_state; } // returns const double&
double& state() { return m_state; }
}
Run Code Online (Sandbox Code Playgroud)
我不会这样做:
double& state() { return m_state; }
Run Code Online (Sandbox Code Playgroud)
m_state如果你这样做,你也可以公开.可能最有意义的是:
const double & state() const { return m_state; }
Run Code Online (Sandbox Code Playgroud)
再说一次,当你谈到保存64位变量的副本(即微优化)以及后一版本可以重铸为你想要的任何东西的事实时,我只想复制它:
double state() const { return m_state; }
Run Code Online (Sandbox Code Playgroud)
(并不是说有任何真正的安全性)