下面这个题目选啥,关于c++虚指针的???

#include<iostream>
using namespace std;
class CBase
{
public:
	void func()
	{
		Print();
	}
	virtual void Print()
	{
		cout<<"CBase::Print"<<endl;
	}
};
class CDerived : public CBase
{
public:
	virtual void Print()
	{
		cout<<"CDerived::Print"<<endl;
	}
};

int main(void)
{
	CDerived c;
	CBase *p = &c;
	cout<<sizeof(*p)<<endl;
	getchar();
	return 0;
}
我想说,vs2010上运行了一下,sizeof(*p)的答案是不是4,可是答案给的是8,不理解??
http://blog.csdn.net/hackbuteer1/article/details/8476976#    原题是第五题#C++工程师#
全部评论
基类含有虚函数,所以有一个虚置针,在32位编译器上就是4byte,在64位编译器上就是8byte,派生类中的虚函数其实是覆盖了基类的虚函数,因此它并没有自己的虚函数表,不存在虚函数表指针,所以基类和派生类的大小是一样的
点赞 回复 分享
发布于 2016-03-24 14:32
32位答案是4没错的,其实就是一个指针大小
点赞 回复 分享
发布于 2015-11-18 10:58
会不会是系统位数的关系?
点赞 回复 分享
发布于 2015-11-15 11:41

相关推荐

09-14 20:51
四川大学 Java
慢热的鲸鱼在学习:985加粗就行了,第二个项目来不及准备也没事,省的写了问你你还不会。你只需准备面试八股和项目场景,剩下的交给985。即使面不过也没事,面试经验是最重要的,你现在不缺时间
简历中的项目经历要怎么写
点赞 评论 收藏
分享
酷酷的喜马拉雅山:感觉这比一直在初筛不动的好多了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务