在C++中,一个类实例化得到的结果就是一个对象。一个类包含成员变量和成员函数,其中成员变量又分为nonstatic成员变量和static成员变量;成员函数又可以分为nonstatic成员函数、static成员函数以及virtual成员函数。一个对象包含可能存在的vfptr以及它声明的或基类继承而来的nonstatic成员变量,static成员变量、static成员函数、nonstatic成员函数以及virtual函数均存在于对象之外。
VC2005中有一个非常重要的编译选项:
对于查看类的对象的内存布局,微软内部在VC2005中(要先进入Microsoft Visual Studio -> Visual Studio Tools -> Visual Studio 2005命令提示)提供了一个非常重要的编译选项:/d1reportSingleClassLayout
比如,如果向查看文件Polymorphism06.cpp中的类Child的对象在内存中的分布情况,先进入cmd命令窗口,改变目录到Polymorphism06.cpp所在的目录,然后键入如下命令:
cl Polymorphism06.cpp /d1reportSingleClassLayoutChild
回车得到如下结果:
(注意:除上面关于内存布局的信息外还有很多其他信息)