一、隐含的this指针

1.每个成员函数都有一个指针形参,它的名字是固定的,称位this指针(构造函数没有)

2.在对象调用类中的函数时,编译器会自动将对象的地址作为实参传给成员函数的第一个形参—this指针

3.this指针是成员函数隐含的指针形参,编译器自己会处理,我们不能自己在定义shi成员函数的形参中添加this指针,也不能在调用时

对比C,C++,了解this指针的作用

类和对象(二)——this指针

类和对象(二)——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指针有没有可能为空?

答:可以为空,但不能解引用,否则会奔溃


相关文章: