通信用語の基礎知識 全国のICカードこれひとつ 戻る

通常PC用 / 人気 更新 今日 カテ
電子計算機 > 仕様・構造 > ソフトウェア > プログラミング言語 > 言語仕様 > 予約語・関数など > C++
delete
辞書:電算用語の基礎知識 プログラミング仕様編 (PTPROGS)
読み:デリート
外語:delete
品詞:名詞

C++の予約語の一つ。演算子の一つ。

目次
概要

削除をするときに使う。

確保されたメモリーの解放などに使う。

特徴
C++

newによってヒープに確保されたメモリーを解放する。

この時、確保されていたのがクラスのインスタンスであればデストラクターが呼ばれる。

C++では、new/delete演算子を用いてメモリー等の確保と開放が可能。このためCの頃とは違い、malloc/free関数を用いる場面は殆どない。

なお、一度deleteして解放した領域を再度deleteした場合の動作は未定義である。さらに、deleteしても領域が解放されるだけで、ポインターがNULLになるわけではない。

Cで複数回free()した場合と同様、C++も複数回のdeleteで二重解放の脆弱性が生じる。

Java

Javaの場合、newで領域確保をする。しかし、領域解放はガベージコレクションで行なわれるため、deleteに相当するものがない。

Javaでは、CやC++にある二重解放の脆弱性を生じさせないようにするため、オブジェクトの削除はガベージコレクションに限定されている。

C++11

C++11では、メンバー関数の定義で、規定の動作を禁止することを宣言するのに使う。

class Example {

// ...

Example& operator=(const Example &) = delete;

Example(const Example &) = delete;

};

代入演算子やコピーコンストラクターを「削除」することができ、これによって安全なclassにすることができる。

逆に規定動作を規定動作として明示するする場合はdefaultを使う。

リンク
用語の所属
C++
Java
関連する用語
new
デストラクター
ヒープ

[再検索] [戻る]


通信用語の基礎知識検索システム WDIC Explorer Ver 7.04 (07-Mar-2021)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club
KisoDic