1

次の状況:

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 にアクセスする必要があります。

したがって、問題はこの問題をどのように解決するかです。データ構造を変更する必要がありますか?

4

2 に答える 2