-
成员变量和成员函数分开存储
在C++中,类内的成员变量和成员函数分开存储
只有非静态成员变量才属于类的对象上
#include<iostream>
using namespace std;
//成员变量和成员函数分开存储
class Person {
int m_A; //非静态成员变量,属于类的对象上
static int m_B; //静态成员变量,不属于类的对象上
void func(){} //非静态成员函数,不属于类的对象上
static void func02(){} //静态成员过函数,不属于类的对象上
};
int Person::m_B = 0; //静态成员变量,类内声明,类外初始化,不属于类的对象上
void test01() {
Person p1;
cout << "Person为空占用的内存空间为:" << sizeof(p1) << endl; //空对象占用内存空间为1
//C++编译器会给每个空对象也分配一个字节的内存空间,是为了区分空对象占用内存的位置
//每个空对象也应该有一个独一无二的内存地址
}
void test02() {
Person p2;
cout << "Person不为空占用的内存空间为:" << sizeof(p2) << endl;
}
int main() {
//test01(); //输出1 当Person类为空时
test02(); //输出4 Person类不为空
system("pause");
return 0;
}