虚继承

虚继承首先加入了一个指针,可认为它指向一个关于虚基类偏移量的数组,偏移量是关于虚基类数据成员的偏移量

其次,在子类中完整包含了父类的内容

sizeof(子类) = sizeof(父类) + 子类数据成员大小 + sizeof(指针)

对于含有虚函数的虚继承

sizeof(子类) = sizeof(父类) + 子类数据成员大小 + sizeof(指针) + sizeof(指针) //指向父类偏移量数组的指针和指向虚函数表的指针

 

但是在有些编译其中用sizeof获取虚继承子类大小的时候并不会算入指向父类偏移量指针(gcc,gcc中子类的虚报指针和父类中的字表指针是共享的)

 

posted @ 2015-09-15 15:28  li-xingtao  阅读(140)  评论(0编辑  收藏  举报