deleteとdelete[]演算子
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2019/02/02 08:52 UTC 版)
「New演算子」の記事における「deleteとdelete[]演算子」の解説
詳細は「delete演算子」を参照 C++では、newあるいはnew[]で記憶域を動的に確保して生成したインスタンスは、不要になったときにそれぞれdeleteあるいはdelete[]演算子で破棄されなければならない。これはC言語においてmalloc関数で確保した領域をfree関数で解放することに相当するが、deleteあるいはdelete[]演算子の場合はメモリ解放の前にデストラクタが呼ばれる点が異なる。ヒープ領域に動的に確保されたメモリは自動的に破棄されることはなく、破棄し忘れたままプログラムを続行するとメモリリークとなる。多くの場合、明示的な破棄を毎回記述することはプログラマの負担となるため、破棄をデストラクタに任せるRAIIパターンが利用される。デストラクタを利用することで例外が発生しても確実に破棄することが可能となる(例外安全)。 従来のC++標準ライブラリにはスマートポインタのクラステンプレートとしてstd::auto_ptrが定義されていたが、C++11では廃止予定となり、代わってstd::unique_ptrやstd::shared_ptrなどが定義された。 #include
※この「deleteとdelete[]演算子」の解説は、「New演算子」の解説の一部です。
「deleteとdelete[]演算子」を含む「New演算子」の記事については、「New演算子」の概要を参照ください。
- deleteとdelete[]演算子のページへのリンク