注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
職場で 継承先でデストラクタを省略したり、 virtualとつけなかったらどうなるの? って言われたので、 ... 職場で 継承先でデストラクタを省略したり、 virtualとつけなかったらどうなるの? って言われたので、 「基底クラスに従うんだぜふじこ!」(ふじこは長いので略) とかいう話をした。 質問者が何を心配してたかっていうと、 基底Aを継承したB、 Bを継承したCがあるとき、 Aはvirtualなデストラクタを持っているが、 Bにはデストラクタがなく、 Cにはvirtualを省略したデストラクタがある。 この場合、 A* ac = new C(); delete ac; B* bc = new C(); delete bc; はCのデストラクタを正しく呼び出すのか? ということだ。 呼び出されなかったらえらいことだろふじこ!! Bには暗黙のデストラクタがあるんだふじこ!! Cで省略してもAの状態を引き継ぐんだぜふじこ!! だけど、省略すると読み手が混乱するから省略しないようにしなさいよねふじこ
2008/09/05 リンク