因为虚函数存储在vtable中,而指向vtable的虚表指针是存储在类所对应的内存上的。由于构造函数未调用的时候,内存还未分配,所以也不存在虚表指针,所以也找不到对应的虚函数,编译器会直接报错,因此构造函数不能是虚函数
C++的构造函数为什么不能是虚函数
最新推荐文章于 2022-09-11 00:05:47 发布
因为虚函数存储在vtable中,而指向vtable的虚表指针是存储在类所对应的内存上的。由于构造函数未调用的时候,内存还未分配,所以也不存在虚表指针,所以也找不到对应的虚函数,编译器会直接报错,因此构造函数不能是虚函数