以下のコードでメモリリーク。
struct A
{
};
struct B : public A
{
string b;
};
A *p = new B;
delete p;
原因は B のデストラクタが呼ばれないためで,A に仮想デストラクタを用意することで解決。
以下のコードでメモリリーク。
struct A
{
};
struct B : public A
{
string b;
};
A *p = new B;
delete p;
原因は B のデストラクタが呼ばれないためで,A に仮想デストラクタを用意することで解決。