記事 デストラクタはオーバーロード可能ですか? は、デストラクタのオーバーロードについて説明しています。
これは疑問を投げかけました:デストラクタはパラメータを持つことができますか?
パラメータを持つデストラクタを使用したことも、見たこともありません。デストラクタにパラメータを使用する理由の例を思い付くことができませんでした。
C++ 0xドラフトn3290のセクション§12.4では、デストラクタについて次のように述べています。
デストラクタ
オプションの関数指定子(7.1.2)に続く〜に続いてデストラクタのクラス名、さらに空のパラメータリストを使用した特別な宣言子構文を使用して、クラス定義でデストラクタを宣言します。
(強調を追加)
したがって、デストラクタはパラメータを取りません。 (2003年の規格には、上記の段落の正確な表現があります。)
いいえ、簡単な答えです。デストラクタがどのパラメータを取得し、どこから取得するのかを心配する必要があるため、これは自動リソース管理を大きな問題にしてしまいます。例外の場合はどうですか?コンパイラはどのようにデストラクタを渡すかを知っていますか?
いいえ、とにかく直接呼び出すことはほとんどないので、何を使うのでしょう。
デストラクタはオブジェクトを破棄することになっています。