Jinlong's Blog

C++ Object Model

C++类的内存布局如下:
/uploads/object_model.jpeg
当类存在虚函数的时候,类的内存布局中将会多出一个vptr的虚函数表指针,其指向的不仅仅有虚函数表,还包括成员变量的类型信息。如果是单继承,那类的内存布局将会是下面这样的:
/uploads/single_inherit.jpeg
如果是多继承,内存布局是这样的:
/uploads/multiple_inherit.jpeg
上面几幅图的布局作为参考,不同的编译器实现会不同。

参考:
Inheritance in C++