我正在编写一个不断添加新成员的类(它是项目的原型),并且我已经实现了自己的构造函数、复制构造函数、复制运算符等......当我添加更多成员时,我必须提醒自己继续将它们添加到构造函数和运算符中,我想知道是否有一种自动方法来检查我是否包含所有内容。
我实现了一个简单的解决方案,该解决方案涉及计算类声明中的所有成员,然后使用该值设置#define。
Class A
{
int a;
int b;
vector<int> c;
/*3 members*/
}
#define CLASS_A_MEMBERS 3
在构造函数中,我只是做这样的事情
A::A( )
{
int counter=0;
a=1; counter++;
b=1; counter++;
c.clear(); counter++;
assert(counter==CLASS_A_MEMBERS)
}
伟大的!每当我忘记添加一些东西时,我都会得到一个断言和有问题的地方!
好的,这行得通......但是,有没有更优雅的方式来做这样的事情?
干杯