はじめに プログラム例 クラスの機能の拡張 純粋仮想関数 vs デフォルト実装 インターフェースをまとめる C++ vs Java まとめ:多重継承は悪くない はじめに Javaではinterfaceを使って個々のクラスに共通する インターフェースを抽出する方法があります。 これをC++でやるには各クラスの共通の関数の宣言を 抽象基底クラスで行い、個々のクラスはそれらを(多重) 継承して実装するという方法があります。 Rubyではさらに実装ごとモジュールに抽出し、 それをクラス,モジュールにインクルードして使う というMix-inという機能があります。 実装ごとモジュールとして分離されるために再利用性が高まる、便利な機能です。 これと似たようなことをC++でやる方法を考えます。 プログラム例 これはモジュールMをクラスAにインクルードする場合の例です。 // "m.h" class M {