deleteとdelete[]演算子とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > deleteとdelete[]演算子の意味・解説 

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 class Bar { /* ... */ };void f(){ auto b = std::make_unique(); // make_uniqueは、newとunique_ptrに関する補助的な関数テンプレートである。new Bar行い結果ポインタをunique_ptr格納して返す。 // すなわち、上記std::unique_ptr b(new Bar);に相当する。 //...} // 有効範囲スコープ)から外れこの位置でbのデストラクタ実行される。unique_ptrデストラクタが、内包するBarオブジェクトdeleteを行う。 動的配列RAIIとしては、std::vectorクラステンプレートがよく利用される

※この「deleteとdelete[]演算子」の解説は、「New演算子」の解説の一部です。
「deleteとdelete[]演算子」を含む「New演算子」の記事については、「New演算子」の概要を参照ください。

ウィキペディア小見出し辞書の「deleteとdelete[]演算子」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「deleteとdelete[]演算子」の関連用語

deleteとdelete[]演算子のお隣キーワード

Delille

Delisle

Dellinger

Dellinger-BASS

Delphi

del

deleteとdelete[]演算子

検索ランキング

   

英語⇒日本語
日本語⇒英語
   



deleteとdelete[]演算子のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、WikipediaのNew演算子 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2024 GRAS Group, Inc.RSS