- プライベート継承は「is-implemented-in-terms-of」の関係。一般的には複合型 (Composition) よりも劣るがプロテクトメンバにアクセスしなくてはならない時、また仮想関数を再定義しなければいけない時などに有効な手段である。
- プライベート継承は empty base 最適化を行なえるので、オブジェクトの大きさを抑えたいライブラリの開発などに向いている。
クラス内にメンバ変数を持たないクラスをメンバ変数として利用しても、最低 char 分のメモリが確保される。そして、パディングも行なわれるので、実際にはもっと大きいメモリが消費される。プライベート継承を用いると、これを回避できる。これは empty base optimization (EBO) と呼ばれる。
前回。次回。
セコメントをする