c++不同继承方式的访问权限

来源:互联网 发布:软件未响应关不掉 编辑:程序博客网 时间:2024/04/27 08:46

1. 对每一种继承方式而言,基类中的成员以相关的权限作为派生类中的成员,但权限只降不升.

Child1试图以public的方式继承Father中的成员A,B,C.

最终权限: A-----public  B-----protected  C-----private

所以,只有A能以public的权限过继给Child,而B成员和C成员均以它们原来的权限:protected, private过继给Child.

Child2试图以protected的方式继承Father中的成员A,B,C.

最终权限: A----protected  B----protected  C----private

Child3试图以private的方式继承Father中的成员A,B,C.

最终权限: A----private  B----private  C----private

2. 在派生类中无法访问其基类原有的private成员.

故在Child1,Child2,Child3类中均无法访问C,但均可访问A,B.

3. 在类的对象中,无法访问类的protected和private成员,

故Child1的对象无法访问B,C, Child2和Child3的对象无法访问A,B,C.


class Father{public:    A;protected:    B;private:    C;};class Child1:public Father{};class Child2:protected Father{};class Child3:private Father{};Child1 child1;Child2 child2;Child3 child3;


0 0