成员变量和成员函数分开存储
#include <bits/stdc++.h>
using namespace std;
class Person{
};
void test01(){
Person p;
//c++编译器会给每个空对象也分配一个字节空间,是为了区分空对象占内存的位置
//每个空对象也应该有一个独一无二的内存地址
cout<<sizeof(p)<<endl;//1
}
int main() {
test01();
return 0;
}
#include <bits/stdc++.h>
using namespace std;
class Person{
int m_A;//非静态成员变量 属于类的对象上的
static int m_B; //静态成员变量 不属于类的对象上
void func(){} //非静态成员函数 不属于类的对象上
static void fuc2(){} //静态成员函数 不属于类的对象上
};
int Person::m_B=0;
void test01(){
Person p;
//c++编译器会给每个空对象也分配一个字节空间,是为了区分空对象占内存的位置
//每个空对象也应该有一个独一无二的内存地址
cout<<sizeof(p)<<endl;//4
}
int main() {
test01();
return 0;
}
文章讨论了C++中成员变量和成员函数在类中的存储方式,指出非静态成员属于类的对象,静态成员属于类本身。通过实例展示了空对象和非空对象在内存占用的不同以及编译器如何处理它们。

22

被折叠的 条评论
为什么被折叠?



