c++ primer第四版 ”去除个别成员“问题

来源:互联网 发布:编程语言实现模式 pdf 编辑:程序博客网 时间:2024/05/17 08:37

原书:派生类可以恢复继承成员的访问级别,但不能使访问级别比基类中原来指定的更严格或更宽松。


class A{public:    int c;protected:    int b;private:    int a;};class B:public A{public:    using A::c; //ok    using A::b; //ok    using A::a; //errorprotected:    using A::c; //ok    using A::b; //ok    using A::a; //errorprivate:    using A::c; //ok    using A::b; //ok    using A::a; //error};


linux g++实验得出:

可被派生类访问的基类成员,都可以在派生类中的任何访问标号下用using声明;

对于派生类外部来说,被声明成员的访问权限由using声明所在的访问标号决定,与基类中的访问权限无关,也与派生列表中的访问标号无关。