菜鸟笔记
提升您的技术认知

虚函数本质

虚函数本质就是一个函数指针

友元函数不能声明为虚函数,但是虚函数可以作为另一个类的友元。

 

构造函数不可以是虚函数,若声明为虚函数:不会再次构造,没有办法创建子类中父类对象

 

析构函数,让父类指针正确的释放子类对象的内存:先调用子类的析构,再调用父类的析构

 

纯虚函数

含有纯虚函数的类为抽象类,抽象类是不可以实例化对象的,可以定义指针,提供同一个接口以完成不同功能;

抽象类不可以作为函数的返回值和参数,抽象类指针可以。可以实现适配器模式

把所有接口都实现了才可以实例化,只要有一个接口没有实现就是抽象类

 

不管一个类中含有多少个虚函数,都只占4个字节,一个指针存储了虚函数表的地址