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

第8章 虚函数与多态性

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

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

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

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

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

你可能感兴趣的:(课程复习)