Я сократил проблему до следующего примера кода:
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 (это общедоступный член), поэтому я не уверен, что делать. Любые идеи?
Примечание. Над названием может потребоваться доработка.