若char是一字节,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)若按4字节对齐sizeof(CTest)的值是多少?
(2)若按1字节对齐sizeof(CTest)的值是多少?
类中:
啥都没有,则占用一个字节;一旦有其他成员占用了空间,该1字节不计算在内;
只有成员函数,类函数不占用空间,则还是只占用1个字节;
虚函数因为存在一个虚函数表,需要4个字节;