vs2010 查看c++类虚函数表及内存布局
近来学习设计模式,其中设计到大量的虚函数使用。通过查资料看到Visual Studio有提供一个查看类虚函数表的方法,试了一下觉得很好用,因此总结一下。本人使用的VS版本为vs2010,通过网上资料看各个版本使用该方法的方式基本一致,大家可以自己试一试。
1、vs2010下查看类的虚函数
首先打开visual studio提供的命令提示工具Visual Studio Command Prompt
2、使用命令:cl /d1 reportSingleClassLayoutXXX [filename]
其中XXX是类的名字,例如本文使用类VirtualTest
3、回车后调用命令,结果如下
从图中可以看出虚函数表的布局以及类的大小等信息。本例中VirtualTest为基类,VirtualTestBase为继承类,VirtualTest类定义三个虚函数:fly,run,析构函数。VirtualTestDerive中只定义了fly,与析构函数,因此可以看到VirtualTestDerive类的虚函数表中的run方法属于父类。