在 C++ 中使用引用代替 getter 是一种不好的做法吗?
例如:
class X
{
int mP;
public:
const int& P;
X():P(mP){}
};
然后
X xl;
int h = xl.P;
只需考虑重构以使访问线程安全,这种方式不会很好地工作,并且需要对客户端类/函数进行大量更改。
如果您有类成员,保证在实例的生命周期内不会更改,您只需提供const int P;
并在类的构造函数中正确初始化它。
如果该值在类范围内可见,请使用static const int P;
在任何其他情况下,请使用公共 getter:
int P() const; // a return type of 'const int &' would be redundant
第一次拍摄实施:
int X::P() const
{
return mP;
}
线程安全的实现:
class X {
{
// ...
private:
// ...
mutable std::mutex internalDataGuard;
};
int X::P() const
{
std::lock(internalDataGuard);
return mP;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)