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

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

継承

クラスを継承する場合は次のように記述する。

class 派生クラス名 : アクセス 基本クラス名 { ... }

アクセスはpublic, private, protectedのいずれか。
これは初めて知った。いままでいつもpublicで書いていて他のが指定できるとは思っていなかった。
privateで継承すると基本クラスでpublicであっても発生クラスではprivateとなり外からアクセスできなくなる。

#include <iostream>
using namespace std;

class base
{
public:
    void func() {}
};

class Test0 : public base
{
};

class Test1 : private base
{
};

int main()
{
    Test0 test0;
    test0.func();

    Test1 test1;
    test1.func(); // コンパイルエラー
}

基本クラスではpublicなのに派生クラスではprivateにしたいようなときってどんな状況だろう?すぐにはいい例を思いつかない。