public継承はis-a関係を表すようにする

オブジェクト指向の重要なルールとして「public継承はis-a関係を意味する」がある。つまり、クラスDerivedがクラスBaseを継承するとき「クラスBaseはクラスDerivedより一般的な概念を表し、クラスDerivedはクラスBaseより特殊化した概念を表す」ということである。このことからクラスBaseが使えるところはクラスDerivedも使えることができるようにする必要がある。つまり、

  • 継承した名前を隠蔽しないようにする
  • 非仮想関数を派生クラスで再定義しない
  • 継承された関数のデフォルト引数を再定義しない

というルールを守る必要がある。

参考文献

Effective C++ 第3版, スコット・メイヤーズ著

スポンサーリンク







シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク