delete
オーバーロードを使用するか、またはdel()
機能などを使用してクラスメンバーの割り当てを解除する必要がありますか?クラスメンバーの割り当てを正しく解除するにはどうすればいいですか?
class Field
{
private:
size_t* square = new size_t[5];
public:
void del()
{
delete[] square;
}
void operator delete (void* p)
{
delete[] reinterpret_cast<Field*>(p)->square;
}
};
int main()
{
Field f;
delete &f;
//or
f.del();
}
どちらもありません。 [デストラクタ](http://en.cppreference.com/w/cpp/language/destructor)を使用してください。 –
新しいものを使用しないでください。また、それらを避けることができる場合は削除してください。 'ベクトル'を使用する – AndyG
[現代のC++で新規および削除の生ポインタまたはCスタイル配列を使用する有効なユースケースはありますか?](https://stackoverflow.com/questions/46991224/are-there-any-有効な使用事例から使用して新しく削除される生ポインタまたはcスタイルのarr) – user0042