読者です 読者をやめる 読者になる 読者になる

Accelerated C++第15章に対する疑問

C++ Accelerated C++

p274の訳注*1に疑問あり。

  • 仮想デストラクタをつけたとあるが、仮想になっていない
  • 仮想だろうが、仮想でなかろうが、privateデストラクタなのでコンパイルできない

原文にあたれないけれど、

  • 継承を使い、派生クラスのポインタをdeleteしているので、本来は仮想デストラクタが必要である
  • それに訳者が気づき、仮想デストラクタを追加したが、virtual を忘れている
  • ただし単にデストラクを記述したため、privateとなり、Ptrがdeleteするときにデストラクタを呼び出せず、コンパイルエラーとなった

というところではないだろうか。
でも BorlandC++ ではコンパイルエラーでませんね。これ。