次のようなクラスがある場合のように
class B {
public:
int a;
};
class C {
B reference;
}
B Test;
C Test2;
C.reference = Test;
B.a = 2;
そして今、私は C.reference.a からも 2 を取得する必要があります
このような:
class C {
public:
B& reference; // notice use of '&' to denote a reference
C(B& ref) : reference(ref)
{
}
};
そしてそれはこのように使用されます:
C Test2 = C(Test);
class C {
public:
C(B & ref)
:reference(ref)
{}
B & reference;
};
B Test;
C Test2(Test);
参照メンバーがある場合、コンパイラーは代入演算子を生成しないため、これを行うことはできないことに注意してください。
B b1, b2;
C c1(b1), c2(b2);
c1 = c2; // can't do this
もちろん、あなたはまだあなた自身を提供することができます。参照を再割り当てできるようにする場合は、ポインターを使用できます。おそらく、ポインターを非公開にし、アクセサーを使用してデータを読み取って変更する必要があります。