親のネストされたクラスから継承するネストされたクラスのコンストラクターを、そのコンストラクターを使用して作成しようとしています。基本的に:
DerivedList<T>::DerivedNested::DerivedNested(DerivedNode*& ptr)
: BaseList<T>::BaseNested::BaseNested(ptr)
{}
BaseNestedのコンストラクターのプロトタイプは次のようになります。
BaseList<T>::BaseNested::BaseNested(BaseNode*& ptr)
(そして、コード内に上記のポインターのアドレスが必要なため、参照によってptrパラメーターを取得する必要があります)
DerivedNode*をBaseNode*にキャストする必要があると思いましたが、:static_cast :: BaseNode *>(ptr)は参照ではないため、一致する関数が見つかりません。static_cast:: BaseNode *&>(ptr)無効なキャストエラーが発生します。
dynamic_castについても同じことが言えます。reinterpret_castはコンパイルされますが、実行中に何か間違ったものになります。
その親コンストラクターを呼び出す方法を知っている人はいますか?