C++的this指针
成员函数的this指针
C++当中有一个this指针。
这个this指针是从哪里来的呢?
类的任何一个成员函数,都能kuku变出来一个this指针。
从cpu的视角看看这个问题,到底是咋回事呢。
compiler explorer
我最近找到一个好东西,
就是compiler explorer。
可以从下面的地址访问它:
https://godbolt.org/
写C++代码比较普通函数和成员函数

看一下上面的截图。
成员函数和普通函数的汇编指令,是完全一致的。
这说明了啥问题?
成员函数和普通函数是完全等价的。
this指针,就是成员函数的参数。

this指针是每一个成员函数必备的默认参数。
只是C++语法,将它隐藏了起来而已。
普通参数,该做的事情,this,都做了。
谁给成员函数输入this指针?

从函数调用的汇编指令看,
调用成员函数和调用普通函数的汇编指令,完全一样。
既然是完全一样的,对比这两行调用代码,
就可以知道,输入this指针,就是输入一个内存地址。
就是输入对象test的内存地址。
所以本质是,
当对象调用成员函数的时候,
都会将自己的地址当做this指针,
输入给成员函数。
只是C++语法将这个内存地址的传参隐藏起来了。
你说你隐藏起来干什么玩意。
乖乖学习,好好做事。

浙公网安备 33010602011771号