>>151
デストラクタとdeleteの本体は全く別物ですから、deleteは正しく行われます。
しかし、オブジェクトの中で新たに領域を動的に確保していた場合などは、
その領域は残ってしまいます。

例えば下の例ですと、int* pの指す領域が開放されずに残ります。

class A {
int a;
};

class B : public A {
int* p;
public:
B() { p = new int; }
~B { delete p; }
}

int main()
{
A* a = new B;
delete a;
}