下面这个题目选啥,关于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++工程师#
全部评论
会不会是系统位数的关系?
点赞 回复 分享
发布于 2015-11-15 11:41
32位答案是4没错的,其实就是一个指针大小
点赞 回复 分享
发布于 2015-11-18 10:58
基类含有虚函数,所以有一个虚置针,在32位编译器上就是4byte,在64位编译器上就是8byte,派生类中的虚函数其实是覆盖了基类的虚函数,因此它并没有自己的虚函数表,不存在虚函数表指针,所以基类和派生类的大小是一样的
点赞 回复 分享
发布于 2016-03-24 14:32

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务