我有一个C ++类,其中包含许多bool
字段,表示系统的不同方面。这个类是另一个被复制的类的一部分(很多!)。
我的问题:
答案 0 :(得分:1)
首先,通常可以,假设您的类不用于实例化大量对象。在后一种情况下,使用整个bool
来表示布尔标志可能会被证明太浪费了。但是你在谈论代表“系统的不同方面”的标志,这听起来像是不会产生大量实例的东西。
其次,也许您应该考虑将这些字段转换为由枚举索引的bool
数组。例如,而不是
bool has_printer;
bool needs_optimizations;
使用
enum {
OPT_HAS_PRINTER,
OPT_NEEDS_OPTIMIZATION,
OPT_COUNT_
};
bool options[OPT_COUNT_];
这将使您的字段集合“运行时可迭代”,这可能会简化许多不关心每个字段的应用程序特定含义的处理代码(如复制代码,读写代码等)