81、构造函数一般不定义为虚函数的原因

(1)创建一个对象时需要确定对象的类型,而虚函数是在运行时动态确定其类型的。在构造一个对象时,由于对象还未创建成功,编译器无法知道对象的实际类型

(2)虚函数的调用需要虚函数表指针vptr,而该指针存放在对象的内存空间中,若构造函数声明为虚 函数,那么由于对象还未创建,还没有内存空间,更没有虚函数表vtable地址用来调用虚构造函数了

(3)虚函数的作用在于通过父类的指针或者引用调用它的时候能够变成调用子类的那个成员函数。而构造函数是在创建对象时自动调用的,不可能通过父类或者引用去调用,因此就规定构造函数不能是虚函数

(4)析构函数一般都要声明为虚函数,这个应该是老生常谈了,这里不再赘述

上一篇:jenkinsfile 执行 ssh 传递 长字符串参数


下一篇:帝国cms7.5内核 《橙子下载站》软件下载站源码程序模板 手机软件游戏下载门户源码