デストラクタをプライベートにすると何の役に立つのでしょうか? 質問する

デストラクタをプライベートにすると何の役に立つのでしょうか? 質問する

デストラクタをプライベートにすると何の役に立つのでしょうか?

ベストアンサー1

基本的に、他のクラスに自分のクラスのオブジェクトのライフサイクルを任せたい場合や、オブジェクトの破棄を防ぐ必要がある場合は、デストラクタをプライベートにすることができます。

たとえば、何らかの参照カウントを行う場合、オブジェクト (または「フレンド」になっているマネージャ) に、自分自身への参照数をカウントする責任を持たせ、数がゼロになったら削除することができます。プライベート dtor は、参照が残っている間は他のユーザーがそれを削除できないようにします。

別の例として、データベース接続が開いているか、ファイルが書き込まれているなど、プログラム内の他の条件に応じてオブジェクトを破棄するか破棄を拒否するマネージャ (またはマネージャ自体) を持つオブジェクトがあるとします。クラスまたはマネージャに "request_delete" メソッドを用意して、その条件をチェックし、削除するか拒否するかして、実行内容を示すステータスを返すことができます。これは、単に "delete" を呼び出すよりもはるかに柔軟です。

おすすめ記事