クラスを継承する場合は次のように記述する。
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にしたいようなときってどんな状況だろう?すぐにはいい例を思いつかない。