【初心者歓迎】C/C++室 Ver.57【環境依存OK】
■ このスレッドは過去ログ倉庫に格納されています
0045デフォルトの名無しさん
2008/07/18(金) 00:01:09基底クラスのデストラクタを virtual にする必要があるのは、派生クラスの
インスタンスを基底クラスのポインタ経由で delete する場合。基底クラスの
デストラクタが virtual でないと、派生クラスのデストラクタが呼ばれない。
Base* b = new Derived();
...
delete b; // Derived::~Derived を呼ぶために、Base::~Base を virtual に!!!
RAII でインスタンスを破棄するなら、virtual である必要はない。
■ このスレッドは過去ログ倉庫に格納されています