一、成员变量与成员函数分开存储。
在C++中,类内的成员变量和成员函数是分开储存的,只有非静态成员变量才属于类的对象上。
#include <iostream>
using namespace std;
class Person{
public:
int m_A; //非静态成员变量 属于对象上
static int m_B; //静态成员变量 不属于对象上
void func() //非静态成员函数 不属于对象上
{
}
static void func2() //静态成员函数 不属于对象上
{
}
};
int main()
{
//Person p; //空对象占用内存空间为:1
//C++编译器都会给空对象分配1个字节的空间,是为了区分空对象占内存的位置。
//空对象在内存空间有一个独一无二的地址。
//cout << "sizeof(p):" << sizeof(p) << endl; //1
Person p;
cout << "sizeof(p):" << sizeof(p) << endl; //4
return 0;
}
二、this指针的概念。
通过第一点,我们知道在C++中成员变量和成员函数分开存储。
静态成员变量、静态成员函数都是在编译阶段已经分配好内存的了。
非静态成员函数是在运行代码之后,才会在代码去申请