需求

为了了解父子类对于虚函数表的影响,需要查看编译器生成的虚函数表。

解决

生成包含虚函数表的文件。

# g++ 8 之前
g++ -fdump-class-hierarchy vptr.cpp

# g++ 8 之后
g++ -fdump-lang-class vptr.cpp

编译后,后产生一个 *.class 的文件,查看这个文件就可以看到子类的虚函数表了。

参考

c++ 查看对象内存布局

C/C++杂记:深入虚表结构

从编译器的辅助信息看c++对象内存布局

C++在gcc下的单继承,多继承,虚继承的内存布局

如何查看c++的虚函数表

C++知识积累:如何获取虚函数表以及虚函数地址