次の状況:
class FeatureBase
class Feature1 : public FeatureBase
class FeatureAttrBase
class Feature1Attr : public FeatureAttrbase
FeatureBase には FeatureAttrBase のリストが含まれており、これらのオブジェクトを作成および管理できる必要があります。したがって、FeatureBase でテンプレートを使用します。
template<class T = FeatureAttrBase> class FeatureBase
属性の作成と管理 (例: new T())
サブクラスは特殊な継承を使用します
class Feature1 : public FeatureBase<Feature1Attr>
コードの他の場所にメソッドを書きました
RegisterFeature(FeatureBase<FeatureAttrBase>* feature)
しかし、コンパイラは、Feature1 と FeatureBase の間で変換できなかったというエラーを表示します。上記の方法では、FeatureAttrBase からの情報のみを使用する必要があります。しかし、Feature1 内では、Feature1Attr にアクセスする必要があります。
したがって、問題はこの問題をどのように解決するかです。データ構造を変更する必要がありますか?