>>580
デストラクタが呼ばれないのはC++の仕様だから覆せない。
メモリリークが起きなければいいんだろう?

int *p;

を

auto_ptr<int> p;

にすれば解決。
あとは Exceptional C++ でも読んで勉強しなはれ。