C++ -----继承

继承

构造函数,析构函数都不能继承

派生类的析构函数应包含基类的析构函数,用来释放基类中的数据成员

派生类构造函数的执行顺序:基类构造函数,子对象的构造函数,派生类的构造函数

派生类析构函数的执行顺序:派生类析构函数,子对象析构函数,基类析构函数

派生类的三种继承方式

不同的继承方式:

  • 影响派生类成员对基类成员的访问权限
  • 影响派生类对象对基类成员的访问权限

公有继承:

基类派生类
私有私有
保护保护
公有公有

保护继承:

基类派生类
私有私有
保护保护
公有保护

私有继承:

基类派生类
私有私有
保护私有
公有私有

子类型:

当一个类型至少包含了另一个类型的所有行为,则称该类型是另一个类型的子类型。比如在公有继承下,派生类是基类的子类型。

类型B适应于类型A:类型B是类型A的子类型,类型B的对象就是类型A的对象。

赋值兼容规则

多继承

class C:public A,public B{
...
};

基类构造函数执行顺序是定义派生类时规定的先后顺序。

多继承的二义性:

调用不同基类中的相同成员时可能产生二义性;

当派生类的几个基类有共同的基类时。

虚基类

用于有共同基类的场合。

以virtual修饰说明虚基类

class A:virtual public B{
...
};

主要用来解决多继承时可能发生的对同一基类继承多次而产生的二义性问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值