プロジェクトで動作し、プロジェクトのタイプに応じてさまざまな機能を公開するアプリケーションを書いているとしましょう。さまざまな種類のプロジェクトのクラスの階層があります。
class AbstractProject
{
};
class ProjectA : public AbstractProject
{
};
class ProjectB : public AbstractProject
{
};
class ProjectC : public AbstractProject
{
};
ここで、AbstractProject *_currentProject ポインターをアプリケーションのメイン クラスのメンバーとして持つことを計画していました。起動時にダイアログ ボックスをポップアップし、選択に基づいて、次のようにします。
_currentProject = new ProjectB(); // e.g.
後で、さまざまなプロジェクトに固有の機能を利用するために、ポインターを特定の型にダウンキャストする必要があります。なんだか、これが不安になります。これを行うより良い方法はありますか?