B
クラスのインスタンスをA
構築する必要があるクラスがあります。
class B
{
B(A* a); // there is no default constructor
};
ここで、メンバーとして含まれるクラスを作成したいB
ので、メンバーとして追加して、のコンストラクターA
に提供する必要もあります。B
class C
{
C() : a(), b(&a) {}
A a; // 1. initialized as a()
B b; // 2. initialized as b(&a) - OK
};
しかし、問題は、誰かがクラス内の変数定義の順序を時々変更すると、壊れてしまうことです
class C
{
C() : a(), b(&a) {}
B b; // 1. initialized as b(&a) while "a" uninitialized
A a; // too late...
};
A
クラスを変更せずにこれを解決する良い方法はありB
ますか? ありがとう。