Вы можете использовать цепочку инициализации в конструкторе A:
class B
{
public:
B(Type1 x, Type2 y)
{
}
void init(Type1 x, Type2 y) { ........}
};
class A
{
public:
A() : Amember1(), Amember2(), b(Amember1, Amember2) {}
private:
Type1 Amember1;
.....
B b;
};
Но вы не можете вызвать конструктор B внутри initB
метода, потому что b уже создан.Вы можете использовать метод B::init()
с данными A, например:
void A::initB(A& a){ b.init(a.Amember1, a.Amember2); cout << "A call init B \n"; }