随笔-20  评论-89  文章-1  trackbacks-0

题记:
sizeof本来以前是小菜,发现原来也有蛮多陷阱的,这里做个记录。

1. sizeof 类
sizeof 类和结构其实差不多,都要注意对齐的问题。并且,sizeof 空类 = 1。
sizeof 类要注意的是:
1) 没有虚函数:sizeof(数据成员)的和
2) 有虚函数:sizeof(数据成员)的和+sizeof(V表指针)=4

例如:

class  A {
    
double  a;
}
;

class  A1:  public  A  {
    
int  pop();
}
;

class  A2:  public  A  {
    
virtual   int  pop();
}
;

int  main( void )
{
    cout 
<<   sizeof (A)  <<  endl  <<   sizeof  A1  <<  endl  <<   sizeof  A2  <<  endl;

    
return   0 ;
}

结果是 8 8 16
说明:之所以sizeof A2是16,是因为对齐的问题;如果类A的数据成员是int a,则结果是8。
posted on 2006-11-14 11:42 夜舞重金属 阅读(744) 评论(0)  编辑 收藏 引用 所属分类: C4ever

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理