一意のBIS_Dataクラスに継承される非常に汎用的な純粋な仮想クラスi_BIS_Dataを作成したいと思います。
class i_BIS_Data
{
public:
i_BIS_Data(void) { }
virtual ~i_BIS_Data( void ) { }
virtual void setData(bis_data data) = 0;
};
i_BIS_Dataのすべての子に、bis_data構造体を定義してもらいたいのですが、それらはすべて異なるためです。私の子クラスは次のようになると思います。
class BIS_0192_Aircraft_ID_Data : i_BIS_Data
{
public:
struct bis_data
{
UInt16 acid;
UInt16 parity;
};
void setData(bis_data data){ m_data.parity = data.parity;
m_data.acid = data.acid; }
}
BIS_0192_Aircraft_ID_Dataを使用するクラスをコンパイルしようとすると、次のエラーが発生します。エラーC2061:構文エラー:識別子'bis_data'。親クラス内でbis_dataを定義していないためだと思います。
では、構造を「オーバーロード」して、複数の子クラスがbis_dataとは何かを定義できるようにすることは可能ですか?