C++面向对象程序设计复习

第8章 虚函数与多态性

向上类型转换:派生类转换为基类类型
静态绑定,早绑定
实现多态用动态绑定,绑定推迟到程序运行时,C++中用虚函数实现
非静态成员函数可以声明为虚函数,虚函数绑定是根据对象类型确定的
派生类定义的虚函数参数表与基类不同,在派生类中会隐藏基类的虚函数。
函数名与参数表相同,返回类型不同,编译器报错

构造函数与析构函数中调用虚函数时,被调用的只是这个虚函数的本地版本
构造函数不能是虚函数,析构函数最好声明为虚函数

加了虚函数的类多了四字节,因为有一个指向虚函数表VTABLE的秘密指针成员VPTR,VTABLE中放置该类中所有虚函数的地址。“VPTR+偏移量”

纯虚函数,=0
包含至少一个纯虚函数,这个类就是抽象类
所有都是纯虚函数,这个类就是纯抽象类
继承抽象类要实现所有的纯虚函数,否则也被看作抽象类
在普通成员函数中可以调用纯虚函数

RTTI(运行时类型识别)
dynamic_cast<>()
虚对一个含有虚函数的类层次进行操作
必须在检测是否为0之后才能使用
typeid
返回type_info类型的引用,没虚函数则指出操作数的类型

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值