オブジェクト指向言語において、あるオブジェクトが解放(破棄)される際に実行される処理やメンバ関数のこと。ディストラクタとも。
C++では、デストラクタの関数名は、クラス名の頭に~を付けたものとする。例えばクラス名がCTestであるなら、classの定義にて~CTest();などを宣言し、CTest::~CTest()として処理を記述することになる。
C++において特に重要なことは、デストラクタ内で不用意に例外を起こしてはならない事が挙げられる。資源の開放忘れやメモリリークを引き起こし、結果として解決困難なバグに悩まされることになる。
例外が起きそうな箇所には必ずtry〜catchで蓋をして、そこから外に例外が飛び出さないように気をつける必要がある。