次のように、プロパティとメソッドのアクセス指定子を保持する派生クラスを C++ で作成するにはどうすればよいですか。
class Base
{
private:
void base_private();
protected:
void base_protected();
public:
void base_public();
};
class A: [what type is appropriate here?] Base
{
public:
void test() {
base_protected(); // Ok
}
};
class B: [what type is appropriate here?] A
{
public:
void test() {
base_protected(); // Ok
}
};
int main()
{
A a;
B b;
a.base_public(); // Ok
a.base_protected(); // Not Ok
b.base_protected(); // Not Ok
b.test(); // Ok
return 0;
}
つまり、base_protected()
メソッドは派生クラスで保護されていますが、base_public()
パブリックです。