2016-05-27 インターフェースの仮想デストラクタ その他プログラミング ハマリ所 C++では、Javaのような言語仕様としてのインターフェースはない。だけど、純粋仮想関数を並べればインターフェースの代用になる。代用になるのだが、インターフェースは言語仕様ではなくて手法なので、落とし穴がある。インターフェースのつもりのクラスに仮想デストラクタを定義しないと、継承した(気分としては実装した)クラスのデストラクタが呼ばれないことがある。ここは通常のクラスの継承と同じ。いや、「通常のクラスの継承」しかない。インターフェースだから特別のようなことはない、つうか、インターフェースなんてないので、お約束を守らないと酷いことになる。