在C++中,类内的成员变量和成员函数分开存储
只有非静态成员变量才属于类的对象上。
1.空对象占用内存空间为:1个字节,代码演示:
#include<iostream>
using namespace std;
//成员变量 和 成员函数 分开存储
class Person {
};
//这是一个空对象
void test01() {
Person p;
//空对象占用内存空间为:1个字节
//C++编译器会给每一个空对象也分配一个字节空间,是为了区分空对象占内存的位置。
//每个空对象也应该有一个独一无二的内存地址
cout << "size of p =" << sizeof(p) << endl;
}
int main() {
test01();
system("pause");
return 0;
}
2.只有非静态成员变量才属于类的对象上。(代码演示)
#include<iostream>
using namespace std;
//成员变量 和 成员函数 分开存储
class Person {
int m_A;//4,非静态成员变量,是属于类的对象上
static int m_B;//test02还是4,说明 静态成员变量,不属于类的
void func() {};//还是4,所以非静态成员函数,不属于类的对象上
static void func2();//还是4,静态成员函数,不属于类的对象上
};
//初始化一下
int Person::m_B = 0;
//有一个变量
void test02() {
Person p;
cout << "size of p =" << sizeof(p) << endl;
}
int main() {
test02();
system("pause");
return 0;
}