//成员变量和成员函数分开存储
#include<iostream>
using namespace std;
//c++一个空对象的大小是1,因为编译器会给每一个空对象分配一个空间标记他的在内存中的位置,每个空对象都应该有他的位置
class Person
{
public:
int m_a; //非静态成员变量
static int m_b; //静态成员变量
void func1(){} //非静态成员函数(本质上和静态一样都只有一份函数实例,通过this指针可以判断是哪个对象在调用这个成员函数。)
static void func2(){}//静态成员函数
};
int Person::m_b=10;//静态成员变量的初始化
void text()
{
Person p;
cout<<sizeof(p)<<endl;
cout<<p.m_a<<endl;
}
void main()
{
text();
}
//程序运行出来是4。说明只有非静态成员变量是属于这个类的对象上的。非静态成员函数和静态成员函数,静态成员变量都不是类的对象上的。因此sizeof一个对象时不占有空间。