VS2005之virtual继承对象模型
VS2005之virtual继承对象模型
(by Nathan.Yu, <?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /><chsdate w:st="on" year="2008" month="12" day="11" islunardate="False" isrocdate="False"><span lang="EN-US">2008-12-11</span></chsdate>)
空类
类声明:
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><shapetype id="_x0000_t75" stroked="f" filled="f" path="[email protected]@[email protected]@[email protected]@[email protected]@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id="_x0000_i1025" style="WIDTH: 180.75pt; HEIGHT: 108pt" type="#_x0000_t75"><imagedata o:title="" src="file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/01/clip_image001.png"></imagedata></shape>
对象定义:
<shape id="_x0000_i1026" style="WIDTH: 231pt; HEIGHT: 80.25pt" type="#_x0000_t75"><imagedata o:title="" src="file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/01/clip_image003.png"><font color="#000000" size="5"></font></imagedata></shape>
此时,对象x、y、z、a的地址、大小及其内容如下:
对象在堆栈中的分布
可见:
l x的大小为一个字节,其内容初始化为0xcc
l y和z的大小为4个字节,初始化为一个指针。
l a的大小为8个字节,初始化为2个指针。这些指针指向一个地址,该地址的内容初始化为0。
这个指针是干什么用的呢?不解。。。。。。。。