Да, я прочитал много уроков и вопросов, а также попробовал много комбинаций, но, похоже, это не сработало. Моя цель - не использовать динамическое распределение.Указатель перехода по ссылке C++
Мои классы выглядеть следующим образом:
Pages
Page
PMain:Page
PCam:Page
на мой основной, когда я делаю это:
1. главное:
Page * page;
PCam main;
main.setContext(context);
page = &main;
page->echo();
результат: PCAM
но когда Я пытаюсь создать экземпляр внутри внешнего класса и указать на него, чтобы он не сработал.
2.
страницы Класс:
Pages::Pages(Page*& page, Context& context){
this->context = &context;
PMain main;
main.setContext(*this->context);
main.echo();
// page = &main; <---
}
главная:
Page * page;
Pages pages(page, context);
page->echo();
результат: Page
ожидаемый результат: PCAM
Мои классы:
Страница:
void Page::setContext(Context & context)
{
this->context = &context;
}
void Page::echo() //virtual
{
std::cout << "echo Page" << std::endl;
}
PMain:
void PMain::echo(){
std::cout << "echo PMain" << std::endl;}
}
PCAM:
void PCam::echo(){
std::cout << "echo PCam" << std::endl;}
}
Любая помощь будет оценена. Благодарю.
просьба отложить свой код. – thebjorn
", но когда я пытаюсь создать экземпляр внутри внешнего класса и укажу его на страницу, он терпит неудачу". - Что это значит? Являются ли 1. и 2. отдельными вопросами? –
* Как * ваш код не работает? У вас возникли ошибки? Вы получаете аварии? Если вы получаете ошибки сборки, отредактируйте свой вопрос, чтобы включить их. Если вы получаете сбои, запустите свою программу в отладчике. –