1999/10/23 - 継承とメモリリーク

以下のコードでメモリリーク。

struct A
{
};

struct B : public A
{
string b;
};

A *p = new B;
delete p;

原因は B のデストラクタが呼ばれないためで,A に仮想デストラクタを用意することで解決。

コメントする