继承和多态

·1   什么是多态

静多态编译时期产生的多态又被称为早绑定函数重载 (函数名相同参数列表不同作用在同一作用域)模版

动多态运行时期的多态晚绑定继承中的多态

不同数据类型提供统一的一个接口

·2  动多态的产生条件

系统调用虚函数的时候

·3  动多态的过程

 1 使用调用虚函数

2 找到vfptr指针

3 找到vf table

4.在表中找到对应函数

·5     虚函数列表什么时候产生在哪里储存

编译期产生    rodata

·6     构造函数能不能写成虚函数

不可以    构造函数无法通过指针引用调用。 vfptr构造时候写入对象多态调用虚函数要用vfptr

·7    静态函数能不能写成虚函数

不可以,静态函数不依赖于对象不依赖于指针进行调用产生不了动多态

·8    析构函数能不能写成虚函数

可以

虚函数能不能被处理成内敛函数

·9    什么情况下析构函数必须写成虚函数

当存在父类指针指向子类对象必须把父类析构函数写成虚函数(父类指针指向子类里父类开始的地方)父类指向堆上子类时确保父类中有虚函数

父类指针指向子类引用指针调用虚函数对象必须是完整的对象(构造函数执行完毕析构函数还没开始)

父类指针能指向子类对象子类指针能不能指向父类对象

可以

先构造父类在构造子类先析构子类再析构父类

·11 类的编译顺序

编译类名

成员名

成员函数体

·12。   隐藏

子类中的成员会隐藏父类中同名的成员

·13。 覆盖

子类中的成员方法会覆盖父类中(同返回值同函数名同参数列表)的虚函数

·14  rtti

运行时期的类型信息,指针指向对象类型在编译时期产生放在rodata

·15。dynamic -cast

父类指针转化为子类指针专用的,必须有rtti 父类指针指向对象确实是子类的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值