私は、基本クラスのげっ歯類を取り、それを純粋な抽象クラスにするように求める演習に取り組んでいます。純粋な抽象クラスについての私の理解は、それがインターフェースとして機能し、純粋な仮想関数のみを含むということです。これは簡単な演習ですが、本で提供されている解決策に問題があります。
class Rodent
{
public:
virtual ~Rodent() {cout << "Destroy rodent" << endl;}
virtual void run() = 0;
virtual void squeak() = 0;
};
ご覧のとおり、作成者はデストラクタにダミーの定義を追加しています。この定義の追加は、これが抽象クラスであり、「純粋な」抽象クラスではないことを意味しませんか?