C++继承的三种方式(公有,私有,保护)

公有继承(public)、私有继承(private)、保护继承(protected)是常用的三种继承方式。

1.公有继承(public)

公有继承的特点是基类中的公有成员与保护成员在派生类中的属性仍保持原状态,即原来是公有成员(保护成员)在派生类中仍是公有成员(保护成员),在该派生类派生出去的子类中可见。而私有成员在派生类中则不可见,以后派生出去的子类中更是不可见。

class A{
    int a1;
public:
    A(int a,int b,int c){
        a1 = a,a2=b,a3=c;
    }
    int a2;
protected:
    int a3;
};
class B:public A{
public:
    B():A(1,2,3){}
    void show(){
        printf("a2=%d a3=%d\n",a2,a3);
    }
};*/a1不可被访问,a2,a3保持原来的状态,即a2可以在类外被修改,而a3不可以。
此时a2,a3相当于B类的公有成员与保护成员。*/

2.私有继承(private)

私有继承的特点是基类中的公有成员与保护成员在派生类中的属性变为私有状态,即基类中的公有成员与保护成员在派生类中一律变成了私有成员,在派生类中可见,在派生类派生出去的子类中不可见。

class A{
    int a1;
public:
    A(int a,int b,int c){
        a1 = a,a2=b,a3=c;
    }
    int a2;
protected:
    int a3;
};
class B:A{
public:
    B():A(1,2,3){}
    void show(){
        printf("a2=%d a3=%d\n",a2,a3);
    }
};//a2,a3属性变成私有成员,在类外与派生后中均不可见。

3. 保护继承(protected)

保护继承的特点是基类的所有公有成员和保护成员都成为派生类的保护成员,只在该派生后的子类中与友元函数中可见。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值