このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(http://d.hatena.ne.jp/m-hiyama-memo/)のデータを移行・保存したものであり、今後(2019年1月以降)更新の予定はありません。

今後の更新は、新しいブログ http://m-hiyama-memo.hatenablog.com/ で行います。

インターフェースの仮想デストラクタ

C++では、Javaのような言語仕様としてのインターフェースはない。だけど、純粋仮想関数を並べればインターフェースの代用になる。

代用になるのだが、インターフェースは言語仕様ではなくて手法なので、落とし穴がある。インターフェースのつもりのクラスに仮想デストラクタを定義しないと、継承した(気分としては実装した)クラスのデストラクタが呼ばれないことがある。ここは通常のクラスの継承と同じ。

いや、「通常のクラスの継承」しかない。インターフェースだから特別のようなことはない、つうか、インターフェースなんてないので、お約束を守らないと酷いことになる。