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= 0Fü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?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage