赞
踩
若char是1字节,int是4字节,指针类型是4字节,代码如下:
- class CTest
- {
- public:
- CTest():m_chData(‘\0’),m_nData(0)
- {
- }
- virtual void mem_fun(){}
- private:
- char m_chData;
- int m_nData;
- static char s_chData;
- };
- char CTest::s_chData=’\0’;
解题思路:
1、先找有没有virtual函数,有的话就要建立虚函数表+4
2、static的成员变量属于类域,不算入对象中+0
3、神马成员都没有的类,或者只有成员函数+1 (一旦类中有其他的占用空间成员,则这1个字节就不在计算之内,如一个类只有一个int则占用4字节而不是5字节)
答案:
(1)结果是12= 4(虚表指针)+1(char )+3(对齐补位)+4(int)
(2)结果是9 =4(虚表指针)+1(char )+4(int)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。