虚函数本质

Posted xiangtingshen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了虚函数本质相关的知识,希望对你有一定的参考价值。

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

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

 

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

 

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

 

纯虚函数

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

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

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

 

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

 

以上是关于虚函数本质的主要内容,如果未能解决你的问题,请参考以下文章

对虚函数进行重载是啥意思?

[C++]——多态虚函数虚指针

[C++]——多态虚函数虚指针

[C++]——多态虚函数虚指针

虚函数纯虚函数和接口的实用方法和意义

C++ 继承和多态