作者LPH66 (IWH68S0XZ8M89)
看板Programming
标题Re: C++ overriding/overriding的问题
时间Wed Feb 13 22:32:32 2008
※ 引述《legnaleurc (CA)》之铭言:
: ※ 引述《ya790206 (残云夺月)》之铭言:
: 恕删
: : 结果是4 8
: : 为何是八之前有人问过,不过我不懂
: : DevC++的结果
: 我认为它的sizeof的计算方式很有趣
: 我把B改成虚拟继承A,印出来就变成4 12
: 然後如果A的x是static int
: 印出来会变成1 1
: 不知道是怎麽算的
我没搞错的话
虚拟继承会多出virtual table的空间
所以B多出了virtual table的4 byte
至於那个8是因为alignment的问题 请往前查
如果A的x是static的话 A就没有member variable了
所以A变成一个"空"物件
好像最近C_and_CPP版还是这里有篇文有说这时似乎是规定它的sizeof是1的样子(不确定)
B则是比(空的)A多一个char 所以就是那个char的1
--
実琴:「
河野!你真的就这样被
物质慾望给吸引过去了吗?!」
亨:「只要
穿着女装摆出亲切的样子,所有必要花费就能
全免,似乎一点都不坏啊。」
実琴:「难道你没有
男人的尊严了吗?!」
亨:(断然道)「
没有。在
节衣缩食且
生活吃紧的
学生面前,
没有那种东西。」
--プリンセス・プリンセス 第二话
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 219.84.44.21
1F:推 yzugsr:我记得inside C++ object里有这个议题 123.193.35.97 02/13 23:56
2F:→ yzugsr:可是详情我没记起来 有兴趣可以找书看 123.193.35.97 02/13 23:57