我正在构建一个应用程序,其中有多个类从单个基类继承。假设我有这个声明:
ref class WorkScreenBase abstract
{
internal:
WorkScreenBase(void);
bool isLoaded;
}
我有几个实现它的类,例如:
ref class MainScreen : public WorkScreenBase
{
internal:
MainScreen(void);
~MainScreen(void);
}
在应用程序的另一部分中,我希望有一个容器用于WorkScreenBase
的任何潜在实现,所以我试图使用:
WorkScreenBase^ myCurrentBase;
但是,这似乎是非法的。什么是解决问题的最佳方法?
UPDATE:我可以使用MainScreen^ myCurrentScreen
,但出于灵活性原因,更倾向于使用基类作为参考点。
答案 0 :(得分:0)
问题是以我没想到的方式修复的(至少根据抛出的编译器错误)。问题出在头文件交叉引用中。不知何故,无论是标题守卫还是#pragma once
,我都得到了一个圆形的 .h 引用。
所以,结论:
#pragma once
都很好,但不会帮助你反对。