0

我正在构建一个应用程序,其中有多个从单个基类继承的类。假设我有这个声明:

ref class WorkScreenBase abstract
{
internal:
   WorkScreenBase(void);
   bool isLoaded;
}

我有几个实现它的类,例如:

ref class MainScreen : public WorkScreenBase
{
internal:
   MainScreen(void);
   ~MainScreen(void);
}

在应用程序的另一部分,我想为任何潜在的实现提供一个容器WorkScreenBase,所以我尝试使用:

WorkScreenBase^ myCurrentBase;

但是,这似乎是非法的。解决问题的最佳方法是什么?

更新:我可以使用 a MainScreen^ myCurrentScreen,但出于灵活性原因,我更愿意使用基类作为参考点。

4

1 回答 1

0

这个问题以我没想到的方式得到了解决(至少根据抛出的编译器错误)。问题出在头文件交叉引用中。不知何故,无论是标题保护还是.h #pragma once,我都得到了一个循环的.h引用。

所以,结论

  • 编译器可能会抛出可能无法准确描述问题的错误。
  • 仔细检查循环引用的标题。头球后卫#pragma once很好,但对你没有帮助。
于 2012-07-11T16:20:26.890 回答