0

単一の基本クラスから継承する複数のクラスが存在するアプリケーションを構築しています。私がこの宣言をしているとしましょう:

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

私はそれを実装するいくつかのクラスを持っています、例えば:

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

アプリケーションの別の部分では、の潜在的な実装用のコンテナーが必要なWorkScreenBaseので、次を使用しようとしています。

WorkScreenBase^ myCurrentBase;

ただし、これは違法と思われます。問題に取り組むための最良の方法は何でしょうか?

更新:を使用することもできますがMainScreen^ myCurrentScreen、柔軟性の理由から、基本クラスを参照ポイントとして使用したいと思います。

4

1 に答える 1

0

この問題は、私が予期していなかった方法で修正されました(少なくとも、スローされたコンパイラエラーによると)。問題は、ヘッダーファイルの相互参照にありました。どういうわけか、ヘッダーガードとの両方で#pragma once、私は円形の.h参照になりました。

だから、結論

  • コンパイラーは、問題を正確に説明していない可能性のあるエラーをスローする可能性があります。
  • 循環参照のヘッダーを再確認してください。ヘッダー#pragma onceは保護し、優れていますが、それを防ぐのに役立ちません。
于 2012-07-11T16:20:26.890 に答える