设为首页 加入收藏

TOP

虚函数与虚继承的思考
2014-11-20 06:25:54 来源: 作者: 【 】 浏览:34
Tags:函数 继承 思考

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


  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。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C++编译错误解决方法 下一篇malloc()函数与free()函数

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: