您的位置:首页 > 其它

关于虚继承和析构函数的一个奇怪的问题

2015-07-17 10:33 423 查看
class A{
public :
int _a1;
int _b;
void virtual f(){};
};

class B:virtual public A{
public:

int _b;

~B(){}; //line1

void virtual f(){}; //line2

void virtual f2(){};
void virtual f3(){};
void virtual f4(){};

};
int main(){

printf("A: %d\n", sizeof(A));
printf("B: %d\n", sizeof(B));
return 0;
}

代码如上,为什么line1和line2同时被注释,一个注释一个不注释输出结果都是12,24,但是如果都不被注释,输出的结果是28?

哪位大牛指点一下。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: