0
// C.h
class C {
private:
A _a_in_C;
B *_b_in_C;
public:
...
}
// B.h
private:
A& _a_in_B;
public:
B(A& a): _a_in_B(a) {}
...
オブジェクト_b_in_C
は、いずれかの方法でC
の生存期間のある時点で作成されます。 _a_in_C
を_a_in_B
と同じオブジェクトにして、_a_in_C
が変更されるたびに_a_in_B
も同時に変更するようにします。C++、値をコピーしない参照でコンストラクタを作る方法はありますか?
問題はB
の新しいインスタンスが作成されると、_a_in_B
はB
で参照を使用しての目的を破り、コンストラクタが作業を終了した後のゴミの完全な_a_in_B
を残し_a_in_C
の一時コピーを、受信することです。
私たちにコンストラクタの呼び出しを表示すると、投稿されたコードは必要な処理を行う必要があります。 – xinaiz
[最小、完全で、検証可能な例](http://stackoverflow.com/help/mcve)を作成してください。 – qxz
'_b_in_C'にヌルポインタを設定する必要があります:' B * _b_in_C = nullptr; '、すでに定義されているかどうかを知ることができます。 –