昨日に引き続き、継承の勉強。今度はprotectedで継承した場合。protectedで継承すれば基本クラスのpublicとprotectedのメンバは派生クラスのprotectedメンバとなる。
#include <iostream> using namespace std; class base { public: void func() {} }; class PrivateBase : private base // privateで継承 { }; class ProtectedBase : protected base // protectedで継承 { }; class Test0 : public PrivateBase { public: void funcTest0() { func(); } // コンパイルエラー }; class Test1 : public ProtectedBase { public: void funcTest1() { func(); } };
なんかちょっとややこしくなってしまったが、慣れれば問題なさそうだ。