
C++
デストラクタはオブジェクトの寿命が終了した直後に自動的に呼び出される。具体的には自動変数ならばスコープを抜けた直後、静的オブジェクトならばプログラム終了直前、new演算子で生成したオブジェクトならばdelete演算子が適用された時である。主にコンストラクタで確保したリソースを解放するための処理が記述される。 派生クラスの場合は、まず派生クラスのデストラクタが呼ばれて派生クラスによる追加部分が解体されてから、基底クラスのデストラクタが順次呼ばれることでオブジェクトが解体される。基底クラスのポインタで派生クラスのインスタンスをポリモーフィックに利用する場合は、基底クラスのデストラクタを仮想関数にしなければならない(仮想デストラクタ)。これはポインタが参照するインスタンスをdeleteする際に呼び出されるデストラクタがポインタの型で決定されるため、基底クラスのデストラクタが仮想でない場合は、基底クラスのデストラクタだけが呼ばれて派生クラスのデストラクタが呼ばれないためである。基底クラスが仮想デストラクタを持っていれば、実際のインスタンスに応じて派生クラスのデストラクタが正しく呼び出される。
自動変数
デストラクタは、例外でスコープを脱出した際にも呼び出される。そのため、コンストラクタでリソースを確保し、デストラクタでリソースを解放するクラスを自動変数として生成することで、スコープのどこから例外が投げられてもリソースの解放が確実に行われる。このイディオムをRAIIという。 デストラクタは例外を投げるべきではない。先に述べたようにデストラクタは例外伝播中にも呼ばれる可能性があるが、その時にデストラクタがさらに例外を投げると二重例外となり、プログラムの強制終了を招くからである。 デストラクタは、プログラマが定義しない場合にC++コンパイラが暗黙に生成する4つの関数の一つである。暗黙のデストラクタの仕様は「中身が空」で「非仮想」となっている。 デストラクタの名前は、クラス名の前に~記号を付けたものと決められている。
Recent Updates
リンク1
リンク2
- 大阪風俗秘密NAVIで貴方だけのお気に入りの女の子が見つかる。
- 東京風俗求人「ラブワーク」でおこずかい稼ぎを効率良くできる。
- 兵庫風俗求人のポータルサイトでは、エリア別、業種別など、幅広く検索することができます。
- 大阪風俗まいど風俗ネット関西の歓楽街をご紹介。
- 大阪風俗求人サイトの決定版。高待遇の求人を探すならココ。
- 貧乳フェチパラダイスでは細見専門の方に大人気です。
- 難波のホテルヘルスはベビーラックにお任せ下さい。
- デリヘル求人は「ラブデリワーク」で一発高収入検索ができます。
- 大阪風俗求人「ヌード学園」では、女性向けに高額な求人情報を掲載中。
- 大阪風俗検太くんは画期的な携帯無料案内所サービスです。
- 「ラブワーク」神戸風俗求人を自分に合った条件ごとに探す。
- 大阪デリヘル「ClubLuce」では最高級のメンバーをご用意しております。
- 大阪デリヘル店検で大阪の風俗店を一挙に検索できます。
- 京都風俗求人サイトで高収入がゲットできるお店を探そう。
- 大阪風俗求人「lovework」では、女の子だけのお仕事がたくさん見つかります。