プロジェクトに抽象工場設計パターンを使用しています。
CPattern * CObjectA::Create(void)
{
CPattern *p = new CPattern;
patternList.push_back (p);
return *p;
}
//Member variable
CPattern *pat = NULL;
pat = Obj.Create();
CObjectA は、デストラクタ中に割り当てられた領域を削除します。問題は、クライアントがこれをもう一度行う場合です。
pat = Obj.Create();
別のスペースを割り当てて、それにポイントを当てます。これが数百回呼び出されると、割り当てを解除せずにスペースを作成し続けます。
別のスペースを割り当てる前に pat が空かどうかを確認する方法はありますか?
ご協力ありがとうございました!