c++クラスのサイズ

1851 ワード

C++クラスオブジェクトのメンバー変数とメンバー関数は別々に格納されるメンバー変数です:通常のメンバー変数:オブジェクトに格納され、struct変数と同じメモリレイアウトとバイト整列方式の静的メンバー変数:グローバルデータ領域に格納されるメンバー関数:世代コードセグメントに格納されます.
class C2
{
public:
	int i; 
	int j; 
	int k; 

	static int m; //4                 
public:
	int getK() const { return k; } //4
	void setK(int val) { k = val; }  //4

protected:
private:
}; 

静的変数がグローバルデータ領域に格納され、メンバー関数がコードセグメントに格納されるため、C 2のサイズは12であり、class C 2に残されるサイズは実際には12個、つまりすべての一般変数のサイズである.