private 継承や protected 継承がよくわからないということをよく聞きます クラスの継承というと is-a 関係だの is-implemented-in-terms-of 関係だのという言葉が出てきてしまうのが何となく難しそうに感じさせている一因だと思いますが、では本当に難しいことなのかというと実は別に難しくも何ともありません private 継承や protected 継承がよくわからないということの原因はただ基底クラスのアクセス指定子が何を意味しているかを理解していないところにあるのだと思います Fig.1 // public継承 class CDerivedClass1 : public CPublicBaseClass { ... }; // protected継承 class CDerivedClass2 : protected CProtectedBaseClas
![C++ 基底クラスのアクセス指定子 - プログラミングの教科書を置いておくところ](https://cdn-ak-scissors.b.st-hatena.com/image/square/0b644b382d14041ab591462d3b0d0f268530003d/height=288;version=1;width=512/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fp%2Fprettysoft%2F20100904%2F20100904150510.png)