オブジェクトの初期化にイニシャライザリストを使用してオブジェクト管理を簡素化したいのですが、問題はオブジェクトが相互に参照し合うことです。
//B::B(A &a) //The only available constructor for B
class AB
{
A m_a;
B m_b;
AB()
: m_a()
, m_b(m_a)
...
};
これは標準で許可されていますか?私が理解していることから、クラス内のメンバー宣言がA、次にBであるとすると、初期化リストの順序は重要ではありません。クラス内の物理的な順序によって初期化されるからです。