在c++中,如果一个派生类没有重写基类中对应的虚函数,那么在派生类的构造函数中依然会创建虚指针,但是该虚指针指向的是基类的虚表。
#include <iostream>
#include <string>class Base {
public:virtual void foo() {std::cout << "Base::foo" << std::endl; }
};class Derived : public Base {};int main() {Base b;Derived d;std::cout << "sizeof(b)=" << sizeof(b) << std::endl;std::cout << "sizeof(d)=" << sizeof(d) << std::endl;return 0;
}
在X64下结果如下:
在线编译运行工具:C++ Shell