回 帖 发 新 帖 刷新版面

主题:sizeof 的问题

class A
{
   public:
     double d;
     float a;
     int  b;
     char  c;
     A();
     ~A();
};
问一下sizeof(A)是多少,为什么

回复列表 (共3个回复)

沙发

再追加一个问题:
class base
{
public:
base(){};
~base(){};
virtual void f(){cout<<"aa";}
virtual void g(int i=10){cout<<i;}
};
class derived:public base
{
public:
derived(){}
~derived(){}
virtual void g(int i=20){cout<<i;}
};
sizeof(derived)是多少,如果改成虚继承又是多少

板凳

寻找中国的最优秀的网商领袖精英 淘宝商盟 qq: 908889846 
当今世界正经历着全球经济一体化的大潮,中国本土企业也因此面临着前所未有的机遇与挑战。
在这场洗礼中,哪些互联网平台有能力成为世界级的电子商务平台?网商精英要怎样做,才能最终成长为世界级网商精英领袖?
淘宝商盟平台震撼登场,携手淘宝30万商家联盟购物商城。
平台刚刚启动,互联网的网商精英请咨询qq: 908889846 
占领市场第一先机,合力打造网商系统!
淘宝商盟官网   www.taobaosm.com
 http://blog.sina.com.cn/tbsm8
淘宝商盟奖励制度

3 楼

在早期的编译器是不能计算类的大小 ,计算的是对象的大小  其实你这两个问题的关键你虚函数,其实虚函数里面有个隐藏的指向虚函数表的指针 大小是4,你估计是忘记加这个了。如果是虚拟继承还要加一个指向父类的指针.不知道你明白了没有

我来回复

您尚未登录,请登录后再回复。点此登录或注册