有如下例子:
#include <iostream>
using namespace std;
class A
{
public:
virtual int getLen();
virtual char getCount();
private:
int m_Len;
char m_Count;
static int m_Width;
};
void main()
{
cout<<sizeof(A)<<endl;
}
結果爲12。
分析:sizeof()計算棧中分配的數據大小,而靜態變量放在全局數據區,虛函數無論多少個,32位系統只佔4個字節,然後爲了照顧數據對齊,有4+4+4=12.