エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
FAQ形式でデストラクタにvirtualを付ける理由をまとめてみた - かせいさんとこ
Q1: デストラクタにvirtualをつけろとよく言われるけど、なんで? 挙動が未定義のdeleteを呼び出す可能... Q1: デストラクタにvirtualをつけろとよく言われるけど、なんで? 挙動が未定義のdeleteを呼び出す可能性があるから Q2: 挙動が未定義だと駄目なの? 超駄目。何が起きても文句は言えない Q3: どんな時に挙動が未定義のdeleteが呼び出されるの? こんなとき // NoVirtualBaseClass : デストラクタにvirtualを持たない // NoVirtualSuperClass : NoVirtualBaseClassを継承 NoVirtualBaseClass * ptr = new NoVirtualSuperClass(); // 挙動が未定義 delete ptr; Q4: 何でそうなるの? delete時点で、ptrは自分がNoVirtualBaseClassのインスタンスだと思ってるから Q5: 何で?NoVirtualSuperClassでnewし
2015/02/19 リンク