Есть ли смысл определять« чистые »виртуальные функции в самом базовом классе? ?

Преимущество определения комм. на виртуальных функциях в базовом классе заключается в том, что тогда нам не нужно переопределять их в производных классах.

Даже если мы определим чистые виртуальные функции в самом базовом классе, нам все равно придется определять их в производных классах.

#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 ();
        }
};

Это наверняка может показаться причудливым, но есть ли ситуации, когда полезно определять чистую виртуальную функцию в самом базовом классе?

12
задан Kara 28 June 2013 в 23:55
поделиться