仮想デストラクタは、ポリモーフィズムを実現する際の基底クラスに設定するのです。そのクラスのポインタを作って派生クラスを指すとき、そのポインタ型となった基底クラスの定義にてデストラクタが virtual になっているか確認します。
IEventHandler *handler = CreateEventHandler(object, &Object::Method); // ←イベントハンドラオブジェクトを作って返す関数 delete handler; // ↑ IEventHandler::~IEventHandler() が virtual でないと派生クラスのデストラクタが呼ばれない
とんでもない勢いで備忘録です。
Contributions