多重継承,仮想継承使ってますか?
以前も触れたことのあるGoogle C++ スタイルガイドをまた読み直してみた。例外禁止,実行時型情報禁止,ストリーム禁止(ログ以外)とかは,かなり賛成。*1
実装の多重継承については賛否両論あると思うが,Javaが基盤言語の1つとして選ばれているからには,禁止というポリシーに落ち着くのは仕方が無いだろう。
個人的には,実装の多重継承は,分かり易いと感じる派である。仮想継承まで使いこなすと,C++の設計の幅はグンと広がると思っているので,Googleも禁止しているからといって,多重継承や仮想継承の便利さから目を背ける人がいたとしたら,残念。まぁ,そうかといって,そんなに説得力のある例は無いのだけど。
私的継承については,ハッキリ言って要らないと思うけど,公開継承の,多重継承,仮想継承については,既存のコードをなるべく安全に建て増してグイグイっと基底クラスを忍び込ませる時に,便利なんですけどね…(説明失敗)。
*1:あとはテンプレートも禁止すれば完璧だ!(持論)