Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1042227
  • 博文数量: 264
  • 博客积分: 6005
  • 博客等级: 大校
  • 技术积分: 2798
  • 用 户 组: 普通用户
  • 注册时间: 2007-08-08 20:15
文章分类

全部博文(264)

文章存档

2011年(42)

2010年(213)

2009年(4)

2008年(2)

2007年(3)

分类:

2010-03-27 16:41:54

第一题:
class A{};
A a;
sizeof (a) == ?
//==========================
class B
{
   int a;
};

第二题
B b;
sizeof (b) == ?
//=========================

第3题:
class C
{
public:
   char a;
   char b;
};

class D: public C
{
public:
   char d;
};


int main()
{
  C *pC = new C();
    C *pC1;
    D *pD = new D();
    pC->a = 1;
    pC->b = 2;
    pD->a = 4;
    pD->b = 7;
    pD->d = 6;
    //*pC = *pD; //会有什么后果
    pC1 = pD;
    *pC = *pC1;

    //*pD = * (dynamic_cast(pC));//出错


    printf("sizeof(*pC):%d,  %d\n", sizeof(*pC), pC->a); //2,4
 
    printf("sizeof(*pD):%d,  %d\n", sizeof(*pD), pC->b);//3,7   //注意不同的编译器可能结果不一样。
    //当遇到  遇到sizeof (*pC) == 4的编译器要小心点, pC->b可能就不会是3了。

    getchar();
}
//========================

第一题:
1,或其他值,要砍具体的编译器了。
第二题:
一般的编译器编译出来的是4.

阅读(467) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~