以下のような基本クラスがあるとします。
template <typename T>
class Base {
// implementation
void do_something() { /* ... */ } ;
};
次に、Derived
以下のようにクラスを作成し、do_something()
メソッドをオーバーライドします。
template <typename T>
class Derived : public Base<T> {
// implementation
void do_something() { /* ... */ } ;
};
クラス テンプレートでは仮想化が機能しないことはわかっており、メソッドの実装を隠しているだけです。しかし、一連の派生クラスと基本クラスをベクトルに格納したい (型消去やポリモーフィズムを使用したくない)、
私の質問は、クラスからベースクラスへのクラスがベースクラスを与えることstatic_cast
をDerived
考えるとdo_something
、それぞれがクラスの実装を持っている間にそれらをベースクラスとして保存できる方法はありますdo_something()
か?