• C++对象模型初探
  • 类中的成员变量 和 成员函数 是分开存储的
  • 只有非静态成员变量 属于类对象上
  • 空类的sizeof结果 1
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;

//#pragma pack(1)   // c语言中结构体当中变量会对其,例如int(长度4) float(长度8),占用空间时,会对齐,分配16个字节的长度。  如果指定pragma pack(1) 则对齐的长度是1,也就是不对其,占用空间会分配12个字节(4+8) 

class Person
{
public:

	int m_A; //只有非静态成员变量  属于类对象上

	void func( )  //成员函数  并不属于类对象上
	{
		
	}

	static int m_B; //静态成员变量  不属于类对象上

	static void func2()//静态成员函数  不属于类对象上
	{
		
	}

	double m_C;

};
int Person::m_B = 0;

void test01()
{
	//空类的sizeof结果是1  原因  每个对象都应该在内存上有独一无二的地址,因此给空对象分配1个字节空间
	// Person pArr[10]  pArr[0]  pArr[1]
	Person p1;
	//  空对象 大小 1  
	cout << "sizeof = " << sizeof(p1) << endl;

}


int main(){
	test01();


	system("pause");
	return EXIT_SUCCESS;
}