成员变量和成员函数分开存储
只有非静态的成员变量才属于类的对象上
空对象占用内存空间为1【空对象就是空的类】
C++编译器会给每个空对象也分配一个字节空间,是为了区分空对象占用内存的位置。
每个空对象也应该有一个独一无二的内存地址
类里面有一个非静态成员变量,那么创建的对象的大小就是成员变量的大小。
---------------------------------------------------------------------------------------------------------------------------------
每一个非静态成员函数只会诞生一个函数实例,意思就是多个同类型的对象会共用一块代码
那么这一块代码是如何区分哪个对象调用自己的呢?-----this指针
this指针指向被调用的成员函数所属的对象,隐含于每一个非静态成员函数内的一种指针。
this指针的用途:
1.当形参与成员变量同名时,可用this指针来区分
2.在类的非静态成员函数中返回对象本身,可使用return *this。
链式编程思想:对象可以调用其成员函数,如果该函数返回值是对象本身,那么就可以接着调用对象的成员函数。但是需要注意的是:成员函数返回值是对象的引用,而并非简单的值,如果是值的话,将会拷贝构造一个新的对象。
#include <iostream>
using namespace std;
class persion
{
public:
int age;
persion(int age)
{
this->age = age;
}
persion& ageadd(const persion& persionn)
{
this->age += persionn.age;
return *this;
}
};
void test01()
{
persion persion1(10);
persion persion2(20);
persion2.ageadd(persion1).ageadd(persion1);
cout << persion2.age << endl;
}
int main()
{
test01();
return 0;
}