class
のユーザー定義デストラクタが存在せず、1つが必要な場合、コンパイラは暗黙的にデストラクタを宣言します。自分のデストラクタを宣言する必要があるときは?私自身のデストラクタを宣言する必要があるときは?
答えて
暗黙のうちに宣言されたデストラクタは、必要な処理を実行しません。
これはやや複雑です。検索してrule of threeを調べる必要があります。
Googleへのリンクを投稿するのではなく、[この優秀なSO質問](http://stackoverflow.com/questions/4172722)へのリンクを投稿してください。 –
私はそれを行うと検索結果で4位です。 :) –
また、多態性クラスが必要な場合は、空の仮想デストラクタを宣言する必要があるということもあります。 –
メモリを割り当てる場合は、オブジェクトを作成するか、コンストラクタ内で作成するか、それ以降はオブジェクトを破棄するときにクリーンアップする必要があります。
何かが完了したことを確認したいとき。 '何か'は、通常、ネットワーク接続やファイルを閉じたり、メモリなどを解放したりします。
オブジェクトの破壊に関する特別なタスク、つまりメモリの割り当て解除、ネットワーク接続のクローズ、スレッド同期、スローされた例外のスローなど
「ストアされた例外をスローする」 - 警告ですが、デストラクタからスローすることは軽くやりたいことではありません!可能な場合は限られたケースがありますが、あなたのプログラムが有用なことを伝えずに終了する状況を避けることはかなり困難です。 –
- 1. フォワード宣言とデストラクタ
- 2. クラスを自分自身のメンバーとして宣言する
- 3. 私自身のDialogFragmentを作成した場合、私自身のボタンを作る必要がありますか?
- 4. 私自身のWeb APIを使用する必要があります
- 5. 宣言する必要があるものJavaクラス内のリスナー
- 6. ボタンはC#で自分自身を参照する必要があります
- 7. app.yamlでindex.htmlを宣言する必要がありますか?
- 8. スカラー変数を宣言する必要があります。
- 9. スカラー変数 "@UserName"を宣言する必要があります
- 10. Dapper ...スカラー変数を宣言する必要があります
- 11. スカラー値を宣言する必要がありますか?
- 12. スカラー変数を宣言する必要がありますか?
- 13. web.configでhttpsを宣言する必要がありますか?
- 14. Objective-C:プライベートメソッドを宣言する必要がありますか?
- 15. テーブル変数 "@myTable"を宣言する必要があります
- 16. スカラー変数を宣言する必要があります@ DateField2
- 17. エラー:スカラー変数を宣言する必要があります
- 18. テーブル変数@tableを宣言する必要があります
- 19. 識別子 'UTILS.IDENTITY_VALUE'を宣言する必要があります
- 20. PLSQLエラー:コンポーネントを宣言する必要があります
- 21. テーブル変数を宣言する必要があります
- 22. 宣言を飛び越すとき、どうして些細なデストラクタが必要ですか?
- 23. 宣言が必要CPP
- 24. 私は自分自身のUITableView "multSelected"配列を複数選択する必要がありますか?
- 25. デュアルOracleフォームで宣言する必要があります
- 26. インターフェイスを再宣言する必要があるのはなぜですか?
- 27. 自分自身を/html.finds.htmlに誘導するサイトが必要
- 28. ロックはグローバルとして宣言する必要がありますか?
- 29. Facebook og:typeメタタグ - 私は自分自身を構成する必要がありますか?
- 30. Android Studio、FileProviderの要素パスを宣言する必要があります
クラスには常にデストラクタがあります。 –
しかし、必ずしもユーザー定義のデストラクタではありません。 – GolezTrol
[こちら](http://stackoverflow.com/questions/4172722/what-is-the-rule-of-three)を参照してください。 –