继承方式的优先顺序,继承方式效力由高到低
# includeusing使用命名空间std/*有三种继承方式:公共继承保护和私有继承*/class basepage1 {
public:int m _ a;protected:int m _ b;
private:int m _ c;};//公共继承类g:public base page 1 { public:void func(){
m _ a=10//父类中的公共权限成员仍然是子类中的公共权限。
m _ b=10//父类中的保护权限成员仍然是子类中的保护权限。
//m _ c=10;//父类中的私有权限成员子类不能访问
//cout this-m _ a endl;
}};//保护继承的类basepage2 {
public:int m _ a;protected:int m _ b;
private:int m _ c;};
class BH:protected base page 2 { public:void func(){ m _ a=100;m _ b=100//m _ c=100;}}不能由父类中的私有成员访问;
void test 01(){ g gg;gg.m _ a=100//gg . m _ b=100;gg中G中的M_b在保护权类之外是不可访问的}
void test 02(){ BH b;//b . m _ a=10;但是在父类中是公共权限,在bh中却变成了受保护的权限,所以不能访问。//b . m _ b=10;
} class base page 3 { public:int m _ a;protected:int m _ b;private:int m _ c;
};class si:private base page 3 { public:void func(){ int m _ a=1000;//父类的共享权限变成私有权限int m _ b=1000//父类保护权限变成私有权限//m _ c=1000;父类私有属性仍然不可访问。
}};void test 03(){司思友;/siyou . m _ a=10;siyou.m _ a=10siyou.m _ b=10//出现所有错误,因为都变成了子类中的私有权限。siyou.m _ c=10/
}int main1() {
test 01();
系统(“暂停”);
返回0;}
我是的。转载授权请联系作者,否则,我将承担法律责任。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。