C++ 中有没有办法强制在类中使用 getter 或 setter?
class C{
private:
int x; // should only be Changed by setX();
private:
setX(int i){
(...) // enforce some complicated invariantes
x = i;
};
m(){
x = 5; // should not not allowed
}
}
我唯一想到的是将所有超级私有成员作为私有变量放入具有受保护的 getter/setter 的抽象基类中。
但这听起来不是好的做法。
有没有更常见的方法或约定来确保每个人都使用设置器?
(我的目的:如果类变得更大,我发现很难记住哪些变量带有不变量。目前在设置我搜索的任何变量之前,我是否创建了一个 getter 或 setter(以确定我是否必须考虑不变量)。但我想每次都摆脱这种不专业的搜索。)