デストラクタ
デストラクタ
【英】destructor
デストラクタとは、C++などのオブジェクト指向のプログラミング言語において、あるオブジェクトを破棄する際に呼び出す関数のことである。
プログラムは処理のためにメモリ領域などの資源を一時的に占有するので、処理が済んだ後はそれらの資源を自由に使用できるよう開放してやる必要がある。適切に開放が行わなければ、新しく使用できる資源が少なくなってメモリリークなどの異常を起こしてしまう。デストラクタを用いれば、プログラム内の任意のオブジェクトを終了し、資源に空き領域を確保することができる。デストラクタにがオブジェクトを開放してやることで、そのオブジェクトのために確保していた資源を開放し、他のオブジェクトやアプリケーションなどに資源を使用できるようになる。
JavaやC#などの言語においては、ファイナライザ(finalizer)と呼ばれる関数がデストラクタに対応している。ただし、これらのプログラミング言語では仮想マシンとよばれる環境が自動的に空きメモリを確保する仕組みを持っているため、基本的にデストラクタを呼び出す必要はない。
ちなみに、デストラクタに対してオブジェクトを初期化するための関数はコンストラクタなどと呼ばれている。
参照リンク
C# および C++ のデストラクタ構文 - (Microsoft)
デストラクタ
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/01/07 17:57 UTC 版)
デストラクタ(英: destructor)は、オブジェクト指向プログラミング言語でオブジェクト(インスタンス)を削除する際に呼び出されて後処理などを行なう関数あるいはメソッドのこと。C++やDelphi、Rustにおいてサポートされている。デストラクタは確実かつ安全なリソース管理を実現するための重要な役割を担う。
- ^ デストラクタ(解体子)とは - IT用語辞典 e-Words
- ^ Destructors (C# Programming Guide) | Microsoft Docs
- ^ Finalizers (C# Programming Guide) | Microsoft Docs
- ^ ヒント: ファイナライザーによる脆弱性からコードを保護する | IBM, Internet Archive
- ^ ファイナライザを理解する ~ファイナライザに起因するトラブルを避けるために~ | 富士通 | 橋口 雅史
- ^ Object (Java SE 9 & JDK 9 )
- ^ How to: Define and consume classes and structs (C++/CLI) | Microsoft Learn
- ^ dealloc | Apple Developer Documentation
- ^ Deinitialization | Documentation
- 1 デストラクタとは
- 2 デストラクタの概要
- 3 他言語の類似機能
デストラクタ
固有名詞の分類
- デストラクタのページへのリンク