一、隐含的this指针
1.每个成员函数都有一个指针形参,它的名字是固定的,称位this指针(构造函数没有)
2.在对象调用类中的函数时,编译器会自动将对象的地址作为实参传给成员函数的第一个形参—this指针
3.this指针是成员函数隐含的指针形参,编译器自己会处理,我们不能自己在定义shi成员函数的形参中添加this指针,也不能在调用时
对比C,C++,了解this指针的作用
二、__thiscall的调用过程
1.__thiscall只能够用在类的成员函数上。
2.参数从右向左压栈。
3.如果参数确定,this指针通过exc传递给被调用者;如果参数不确定,this指针在所有参数压栈后压入栈帧
4.对参数个数不定的,调用着清理堆栈,否则自己清理堆栈。
三 、this指针的特性
1.this指针类型,类类型* const (一个常量,不能赋值)
2.指针本身并不是对象的一部分,不影响sizeof的结果
3.this指针的作用域在类成员函数的内部
问1:为什么成员变量在后,成员函数在前,编译器不会报错
答:1.识别类型
2.识别类的成员
3.识别类中函数,以及对函数进行改造
类中变量定义在前在后无所谓,因为编译器会先识别变量
问2:为什么叫this指针,而不是引用呢?
答:C++之前叫“C with class”,并没有引用的概念,C++1.0以后才引入了引用,常量,运算符重载,虚函数等
问3:this指针有没有可能为空?
答:可以为空,但不能解引用,否则会奔溃