第一题:
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.
阅读(534) | 评论(0) | 转发(0) |