タグ

ブックマーク / sato-www.cs.titech.ac.jp (1)

  • C++でMix-inもどき(多重継承はそんなに悪いのか)

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

  • 1