是的,我已经阅读了很多教程和问题,也尝试了很多组合,但似乎不起作用。我的目标是不使用动态分配。
我的课程如下所示:
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();
结果:页面
预期结果:PCam
我的课程:
页:
void Page::setContext(Context & context)
{
this->context = &context;
}
void Page::echo() //virtual
{
std::cout << "echo Page" << std::endl;
}
主:
void PMain::echo(){
std::cout << "echo PMain" << std::endl;}
}
电脑摄像头:
void PCam::echo(){
std::cout << "echo PCam" << std::endl;}
}
任何帮助,将不胜感激。谢谢。