1.成员变量和成员函数分开存储
- 在C++中,类内的成员变量和成员函数分开存储;
- 只有非静态成员变量才属于类的对象上。
2.一个空对象所占用的内存空间是多少
#include<iostream>
using namespace std;
class Person
{
};
void test()
{
Person p;
cout << "sizeof p = " << sizeof(p) << endl;
}
int main()
{
test();
system("pause");
return 0;
}
可以看到,一个空对象所占用的内存空间为1个字节:
- 因为C++编译器会给空对象分配1个字节的内存空间,是为了区分空对象占内存的位置;
- 每个空对象也应该有一个独一无二的内存地址。
3.在类中写一个非静态成员变量
可以看到占4个字节内存,说明非静态成员变量是属于类的对象上。
4.在类中写一个静态成员变量
可以看到占1个字节的内存,说明静态成员变量不属于类对象上。
5.在类中写一个静态成员函数
可以看到占1个字节的内存,说明静态成员函数(无论是静态还是非静态的成员函数)也不属于类对象上。
6.总结
只有非静态成员变量才属于类的对象上。