私は常に新しいメンバーを追加するクラスを作成しています (これはプロジェクトのプロトタイプです)。独自のコンストラクター、コピー コンストラクター、コピー オペレーターなどを実装しました。メンバーを追加するときは、それらをコンストラクターとオペレーターに追加し続け、すべてを含めているかどうかを自動的に確認する方法があるかどうか疑問に思っています。
クラス宣言ですべてのメンバーをカウントし、その値で #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)
}
すごい!何かを追加するのを忘れるたびに、アサートと問題のある場所が表示されます!
わかりました、これは機能します...しかし、このようなことを行うよりエレガントな方法はありますか?
乾杯