#include <iostream>
using namespace std;
class Person {
int m_A ;//非静态成员变量 属于类的对象上
static int m_B;//静态成员变量 不属于类对象上
void func() {}//非静态成员函数 不属于类对象上
static void func2(){}//静态成员函数 不属于类对象上
};
int Person::m_B=0;
void test01() {
Person p;
//空对象内存占用空间为:1
//c++编译器会给每个空对象也分配一个字节的地址,是为区分空对象占内存的位置
//每个空对象也会分配一个独一无二的内存地址
cout << "size of p=" << sizeof(p) << endl;
}
void test02() {
Person p;
cout << "size of p=" << sizeof(p) << endl;
}
int main() {
//test01();
test02();
return 0;
}
《c++》成员变量和成员函数分开存储
最新推荐文章于 2024-09-16 17:46:36 发布
文章详细解释了C++中的类结构,包括静态成员变量m_B与非静态成员变量m_A的区别,以及test01和test02函数如何演示空对象的内存占用。着重展示了静态成员与非静态成员在内存分配上的差异。
摘要由CSDN通过智能技术生成