虚函数与虚继承的思考计算机等级考试

文章作者 100test 发表时间 2010:01:01 13:00:43
来源 100Test.Com百考试题网


  有这么一个关于虚函数和虚继承的问题,如下:

  class A

  {

  char k[3].

  public:

  virtual void aa().

  }.

  class B: public virtual A

  {

  char j[3].

  public:

  virtual void bb().

  }.

  class C: public virtual B

  {

  char i[3].

  public:

  virtual void cc().

  }.

  请问sizeof(A), sizeof(B), sizeof(C)分别为多少?

  对于A, 我们很清楚的知道,其大小为8。

  对于B,考虑到虚继承和自身的虚函数,我们也可以算出来起大小为8 8 4 = 20对于C,其大小为20 8 4 = 32。

  其中 4为虚继承所占用的指针。

  这个看上去没有什么问题。但是当我把虚继承去掉以后,这里却有了一些变化?

  首先,我猜想了一下,A是8,B是16,C是24。


相关文章


MFC界面控件自动大小伸缩计算机等级考试
C 编程:多边形扫描转换算法计算机等级考试
VC编程入门浅谈计算机等级考试
malloc()函数与free()函数计算机等级考试
虚函数与虚继承的思考计算机等级考试
C 编译错误解决方法计算机等级考试
Win32编程点滴之窗口的位置计算机等级考试
typedef函数指针的用法(附例子)计算机等级考试
CString,int,string,char*之间的转换计算机等级考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛