基本クラスで共通の仮想関数を定義する利点は、派生クラスでそれらを再定義する必要がないことです。
基本クラス自体で純粋仮想関数を定義したとしても、派生クラスでもそれらを定義する必要があります。
#include <iostream>
using namespace std;
class speciesFamily
{
public:
virtual void numberOfLegs () = 0;
};
void speciesFamily :: numberOfLegs ()
{
cout << "\nFour";
}
class catFamily : public speciesFamily
{
public:
void numberOfLegs ()
{
speciesFamily :: numberOfLegs ();
}
};
これは確かに派手に見えるかもしれませんが、基本クラス自体に純粋仮想関数を定義する ことが有益な状況はありますか?