зависимые классы, как и другие члены класса

У меня есть класс 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 ? Спасибо.

10
задан Wolf 19 June 2014 в 11:09
поделиться