码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-07-17 12:10:00      阅读:86      评论:0      收藏:0      [点我收藏+]

标签:

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?

哪位大牛指点一下。


版权声明:本文为博主原创文章,欢迎转载,转载请注明出处。

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

标签:

原文地址:http://blog.csdn.net/shizhixin/article/details/46923779

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!