本当にコンポジションで済むなら
A、Bに引数付きのコンストラクタ作っって、
デフォルトコンストラクタからnewするときにthisを渡せばいいんじゃないの?

そもそも、再起がどうでコンパイルエラーをなくす事に気を取られて、
自分の動かそうとしているコードの意味を理解していないんじゃないか?

あと、相互参照してるときにデストラクタで相手を保持してるポインタを直接deleteすると、実行時に死ぬよ。