ゲームが作れるようになるまでがんばる日記

ゲーム制作のことを中心にゲームに関することを書いています

protectedで継承

昨日に引き続き、継承の勉強。今度は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(); }
};

なんかちょっとややこしくなってしまったが、慣れれば問題なさそうだ。