に「この」オブジェクト:パス私は、次のサンプルコードにまで問題を低減しました初期化リスト
class Charizard { //truck
trainer &myTrainer;
public:
Charizard(trainer &tMyTrainer);
};
class trainer {
Charizard myPokemon;
public:
trainer();
};
Charizard::Charizard(trainer &tMyTrainer) : myTrainer(tMyTrainer) {}
パブリックメンバーを変更したり追加することなく、どのように私はトレーナーのためのコンストラクタを作成することができますが、その結果、 myPokemonが初期化リストに作成されると、「myTrainer」は作成されたトレーナに戻りますか?ここで
は、私が試したものです:
trainer::trainer() : myPokemon(this) {}
しかし、もちろん「これは」正しいタイプではありません。私はCharizardのコンストラクタが(それはpublicメンバーです)取り込むものを変更することはできませんので、何をすべきか分かりません。何か案は?
注:タイトルにはいくつかの作業が必要な場合があります。
これはまさに私が探していたものであり、警告をいただきありがとうございます。 – Coltin