vs2019 查看类的虚函数_VS2013命令行界面查看虚函数的内存布局

内存布局可能使用vs的界面调试看到的旺旺是一串数字,很不方便,但是vs的命令行界面可以很直观的显示出一个类中具体的内存布局。

打开命令行。界面如下所示:

测试代码如下所示:

1 classBase1 {2 public:3 Base1();4 virtual ~Base1();5 virtual voidspeackClearly();6 virtual Base1* clone() const;7 protected:8 floatdata_Base1;9 };10

11 classBase2 {12 public:13 Base2();14 virtual ~Base2();15 virtual voidmumble();16 virtual Base2* clone() const;17 protected:18 floatdata_Base2;19 };20

21 class Derived : public Base1, publicBase2 {22 public:23 Derived();24 virtual ~Derived();25 virtual Derived* clone() const;26 protected:27 floatdata_Derived;28 };29

30 int main(void)31 {32 return 0;33 }

然后使用cl命令的/d1 reportAllClassLayout或reportSingleClassLayoutXXX选项。这里的reportAllClassLayout选项会打印大量相关类的信息,而不仅仅是这个文件中的类,所以一般用处不大。而reportSingleClassLayoutXXX选项的XXX代表要编译的代码中类的名字(这里XXX类),打印XXX类的内存布局和虚函数表(如果代码中没有对应的类,则选项无效),这里可以分别使用:

1 cl /d1 reportSingleClassLayoutBase1 main.cpp2 cl /d1 reportSingleClassLayoutBase2 main.cpp3 cl /d1 reportSingleClassLayoutDerived main.cpp

来分别打印出三个类的内存布局,如下所示:

Base1:

Base2:

Derived:

参考:

http://www.cnblogs.com/hitwtx/archive/2011/08/20/2147431.html

http://my.oschina.net/hnuweiwei/blog/280894

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值