我已将对类变量的访问权限从公共更改为私有,
然后创建 getter & setter(100 个变量)
一段时间后,完成之后,
我怎样才能自动化,直接访问这些变量中的任何一个来设置/获取,而无需遍历这 100 个变量中的每一个。有时,在整个大型项目中几乎可以在任何地方访问变量,因此手动操作有点困难。
我正在使用 Eclipse IDE,C++ 项目
我已将对类变量的访问权限从公共更改为私有,
然后创建 getter & setter(100 个变量)
一段时间后,完成之后,
我怎样才能自动化,直接访问这些变量中的任何一个来设置/获取,而无需遍历这 100 个变量中的每一个。有时,在整个大型项目中几乎可以在任何地方访问变量,因此手动操作有点困难。
我正在使用 Eclipse IDE,C++ 项目
如果您的项目非常大并且您正在将私有成员控制改装到其中,您可能会发现采用另一种方法会有所帮助:根本不实现 getter.... 只需实现 setter。为每个底层私有成员变量定义一个const
公共引用,作为它的“getter”。任何读取此数据的代码都可以保持不变;您只需要更新设置这些变量的代码,这可能会减少更新的痛苦。如果你走这条路,你必须在构造函数中初始化这些公共引用,像这样:
class fred {
public:
fred() : stone(_stone) {} // every constructor must initialize all public references like this
void set_stone(int s) { _stone = s; }
int get_stone() { return _stone; } // Instead of this (or, in ADDITION to this), do this....
const int& stone; // const public reference to internal private data member
private:
int _stone;
}
您可以永久使用该解决方案,或者仅在您(“有一天”)完成更新所有吸气剂之前。对于内部数据的数据类型非常明显且不会改变的类,我个人更喜欢这种解决方案,因为用它编写的代码更容易阅读。我希望C++ 有一个operator classmember_setter<membername>()
特性,可以让你编写一个 setter 方法,看起来就像你只是在访问一个数据成员,而不是在它上面调用一个方法;这将产生比使用 setter 方法获得的更简洁的代码。