第十三章 派生类&虚函数

本文深入探讨C++中的派生类构造函数,解释为何必须使用列表初始化方式构造基类。此外,文章讨论了多态公有继承的概念,特别是虚函数的工作原理和动态联编,并介绍了纯虚函数在抽象基类中的应用。
摘要由CSDN通过智能技术生成

派生类的构造函数

鉴于已经掌握类继承的一些非常基本的知识,比如类继承的用法,含义,定义等。这里将更加深入理解类继承本身,详尽阐述继承的特性和原因。

我们知道,派生类的构造函数必须使用基类的构造函数来构造基类,而且只能使用列表初始化的方式去构造基类,这是为什么?

事实上,如果我们创建一个派生类的对象,那么计算机会调用派生类的构造函数,但是此时我们还没有真正的构造基类,派生类命名是基类的衍生,是基类的补充,但是我们调用派生类的构造函数并不能真正的构造基类。也就是说,基类的构造函数必须早于派生类的构造函数调用。、

之前我们学习过构造函数的列表初始化,在整整的执行过程中,首先执行列表中的初始化,然后再执行构造函数的函数体部分,这就是基类必须使用列表初始化的原因——它必须早于派生类构造。

有几点需要注意

  • 如果你没有调用基类的构造函数,编译器会自动调用默认的基类构造函数。
  • 析构函数和构造函数的调用相反。首先析构派生类衍生的部分,然后析构基类。

多态公有继承

有的时候我们希望派生类和类再同义方法上具有不同的行为,比如说输出信息,派生类输出派生类的信息,基类输出基类的信息。

这种具有复杂行为的行为称为多态

多态公有继承使用大概两种方法实现

  • 在派生类重新定义基类的方法,这种方法称为override。

  • 使用虚函数。

    虚函数

    这里着重讲一下虚函数

class 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值