有什么办法可以做到这一点:
class example {
public:
const int dontModifyMe;
example() {
// setup for dontModifyMe..
dontModifyMe = getValueForDontModifyMe(earlierSetup);
}
}
example ex;
cout << ex.dontModifyMe; // works
ex.dontModifyMe = 4 // error
如果dontModifyMe不需要设置,则只使用成员初始化列表。有没有一种方法不需要显式的getter / setter方法?
最佳答案
我过去使用过的方法大致如下:
class example {
int m_theValue;
public:
const int &theValue = m_theValue;
}
这样,您就可以通过m_theValue在内部编辑值,同时在“public” Realm 中保持恒定的接口(interface)可用。它与getter / setter方法的效果类似,但不需要实际使用所述方法。
关于c++ - 将变量设为只读,但仍可以由C++客户端访问?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31548151/