基本クラスと派生クラスがあるとします
class MyBaseClass
{
public:
virtual void MustBeOverRidden()
{
DoSomething();
}
};
class MyDerivedClass : public MyBaseClass
{
public:
void MustBeOverRidden()
{
MyBaseClass::DoSomething();
DoSomethingElse();
}
};
BaseClass が抽象型の場合、宣言できます
virtual void MustBeOverRidden() = 0;
ただし、この場合、基本クラスの機能は通常、派生機能の一部として呼び出されます。この場合、すべての派生クラスを強制的に基本クラス関数をオーバーライドする方法はありますか? または、純粋仮想関数の実装を提供できますか?
編集: 基本クラスをインスタンス化できるようにする必要があるため、純粋仮想関数の実装が機能せず、 エラー C2259: 'MyBaseClass' : 抽象クラスをインスタンス化できません