我的情况的简化示例:
我有一个类,有3个成员变量,都是整数,例如。
class Foo
{
public:
int A;
int B;
int C;
};
我想要一个返回布尔值的函数
true
如果所有成员变量都是0和
false
否则
很简单,可以使用此成员函数完成:
bool all_zero()
{
return (A == 0 && B == 0 && C == 0);
}
如果有必要,我可以这样做。
然而,这在我的情况下并不理想,因为:
-
我不是唯一一个管理这个软件的人。
-
偶尔会向此类添加新成员变量(例如。
int D
).
-
这是一个非常大的C++项目,我们通常不会通过手动修改代码直接向类中添加新的成员变量,相反,我们有自定义工具可以自动修改代码。因此,我们很少手动修改这个类。
-
此外,由于该项目规模巨大
all_zero
上述功能很容易被忽视(例如,有人可能会忘记或完全不知道添加
&& D == 0
如果添加了新成员变量,则返回函数)。
所有这些都表明。。。我的问题是:
有没有办法修改这个
all\u零
使其始终检查
全部的
成员变量(共个)
int
类型),而无需告诉函数显式检查每一个?顺便说一下,如果这个功能是在类之外完成的(而不是在具有成员函数的类内部),我也可以。
我希望我不必求助于此,但对我来说,最糟糕的情况是我可以坚持原作
all\u零
将向此类添加新成员变量的过程化,基本上告诉向类添加成员变量的任何人也必须手动修改
all\u零
作用