1. 虚函数,为什么要引入虚函数?
虚函数在面向对象编程中引入,目的是更好的体现基类对象的特点和功能,而又允许多个派生类可以有自己的具体功能实现,从而实现多态性。
在类中,定义格式virtual 返回值 function(参数表){函数体};在派生类中要具体实现该函数。
调用,类或类指针后跟函数名,和普通函数一样
2. 虚函数的声明和定义必须一起吗?
不一定,虚函数的申明要在定义的前面
3. 虚函数底层实现有什么实际意义?
c++最重要的就是类,模板编程,类的实现基础就是c++内存对象模型、虚函数,了解虚函数就有助于了解了c++对象模型了,对之后的工程化编程有很大帮助,能更好的组织类的继承关系。
4. 先访问一般函数还是虚函数?
类中的虚函数是动态生成的,由虚函数表的指向进行访问,不为类的对象分配内存,就没有虚函数表就无法访问。 类中的普通函数静态生成,不为类的对象分配内存也可访问。