构造函数不能声明为虚函数,析构函数可以声明为虚函数。
1. 从存储空间角度,虚函数对应一个指向vtable虚函数表的指针,这大家都知道,可是...所以构造函数不能是虚函数。 2. 从使用角度,虚函数主要用于在信息不全的情况下,能使重载的函数得到对应的调用。构造函数本身就是
构造函数不能是虚函数 1. 从vptr角度解释虚函数的调用是通过虚函数表来查找的,而虚函数表由类的实例化对象的vptr指针(vptr可以参考C++的虚函数表指针vptr)指向,该指针存放在对象的内部空间中,需要调用构造...
构造函数为什么不能是虚函数 C++ ...从存储空间角度,虚函数对应一个指向vtable虚函数表的指针,这大家都知道,可是这个...所以构造函数不能是虚函数。简单来说就是:虚函数的执行依赖于虚函数表。而虚函数表在
还没有实例化,也就是内存空间还有办法找到vtable,所以构造函数不能是虚函数。 二、从使用角度构造函数本来就是要初始化实例,那么使用虚函数也没有实际意义呀,所以构造函数没必要是虚函数。而虚函数的作用是...
构造函数不能声明为虚函数,析构函数可以声明为虚函数,而且有时是必须声明为虚函数。