this指针
同一个类中,不同的对象.
比如:"小狗"的类中有,黑狗和白狗.
那么"黑狗"和"白狗"实际上运行的代码都是"小狗"这个类的,
也就是两者,运行的代码有一部分都是相同的,比如有一个相同的函数.
黑白狗中的成员函数,如何知道该运行"黑狗"参数还是"白狗"参数.
这里靠的就是this指针了.
每个对象都有一个this指针,
黑狗和白狗都有各自的this指针.
this指针记录了对象的内存地址.this指针也就是指向自身数据的指针.
"黑狗"的this指针指向"黑狗",
"白狗"的this指针指向"白狗",
this指针特点:
1,this指针只能在成员函数中使用.
事实上,成员函数的第一个参数就是this指针,只不过c++隐含了.
比如,小狗类中的run()函数,看似没有传参,实际上, run(T* const this);
传入的T* const this 就是this指针,只不过c++帮我们简化了.
2,this指针在成员函数开始前进行构造,在成员函数结束后清除.
3,this 指针会因编译器不同而有不同的放置位置。可能是栈,也可能是寄存器,甚至全 局变量。