- 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;
}