成员变量和成员函数分开存储
-
只有非静态的成员变量才属于类的对象
-
C++编译器会给每个空对象分配一个字节的内存空间,是为了区分空对象占内存的位置,每个空对象都有一个唯一的内存地址
-
静态成员变量和静态成员函数、非静态成员函数都不属于类的对象上
this指针
- 由于非静态成员函数只会诞生一份函数实例,多个同类型的对象共用一块代码
- C++通过this指针,区分是哪个对象在调用这个非静态成员函数
- this指针指向被调用的成员函数所属的对象
用途:
-
当形参和成员变量同名时,可用this指针来区分
-
在类的非静态成员函数中返回对象本身,可使用return *this
Person& addAge(Person &p){ this->age+=p.age; return *this; } int main(){ Person p(10); p.addAge(10).addAge(10);//链式编程 }