C++ ではポインターを使用しないように言われました。しかし、私が書こうとしているコードでは、それらを避けることはできないようです。あるいは、他の優れた C++ 機能を見逃している可能性があります。
別のクラス (class2) をデータ メンバーとして含むクラス (class1) を作成したいと考えています。次に、class2 に class1 を認識させ、それと通信できるようにします。
class2 のメンバーとして class1 への参照を持つことができますが、それは、class2 のコンストラクターでパラメーターとして class1 への参照を提供し、不要な初期化リストを使用する必要があることを意味します。コンストラクターを使用せずにこれを実行しようとしています。
class2 には、class1 への参照を取り込める Initialise というメンバー関数が必要ですが、これはポインターを使用しないと不可能のようです。人々はここで何をお勧めしますか? 前もって感謝します。
コードは、主なアイデアを理解するために完全に単純化されています。
class class1
{
public:
InitialiseClass2()
{
c2.Initialise(this);
}
private:
class2 c2;
};
class class2
{
public:
Initialise(class1* c1)
{
this->c1 = c1;
}
private:
class1* c1;
};