ヒープが割り当てられているかどうかを示すフラグを設定できるようにしたいクラスがあるので、それ自体を適切にクリーンアップし、スタック上にある場合はそれ自体を削除しようとしません。new
問題は...両方とコンストラクターを同時にオーバーライドできないようです。したがって、フラグnew
を設定するオーバーロードから、isHeapAllocated
フラグをリセットするコンストラクターに入ります。
void* String8::operator new(size_t size)
{
String8* string = (String8*)malloc(size);
if(string == null)
Exception("allocation fail : no free memory");
string->isHeapAllocated = true;
return string;
}
String8::String8()
{
isHeapAllocated = false;
}
そのnew String8()
ため、isHeapAllocated
フラグを設定してから にリセットしfalse
ます。これを行う方法はありますか?