基底クラスには仮想デストラクタ

基底クラスをCBase、その派生クラスCInherとして、
それぞれでデストラクタを実装し、以下の処理を行う。

CBase *obj = new CInher()
・
・
・
delete obj;

この場合、なぜかデストラクタが呼ばれないことがあるらしい。
これを避けるには、基底クラスでは仮想デストラクタにしなければならない。
(基底クラスでデストラクタを宣言しないのもダメ)