Warum ist es sinnvoll, eine rein virtuelle Funktion zu definieren?
Scott sagte auf Effective C ++, 3rd Edition, pg. 43 Um eine abstrakte Klasse zu erstellen, müssen wir ihr lediglich einen reinen virtuellen Destruktor geben:
class AWOV { // AWOV = "Abstract w/o Virtuals"
public:
virtual ~AWOV() = 0; // declare pure virtual destructor
};
Dann sagte er weiter, dass es eine Wendung gibt: Wir müssen eine Definition für den reinen virtuellen Destruktor liefern:
AWOV::~AWOW() {} // definition of pure virtual dtor
Meine Frage ist, durch Angabe= 0
Für rein virtuelle Funktionen können wir sagen, dass die Funktion keine Definition für die Klasse haben kann, in der diese rein virtuelle Funktion deklariert ist.
Warum ist es in Ordnung, hier eine Definition (auch wenn diese leer ist) für den reinen virtuellen Destruktor bereitzustellen?