中午在学习C++写例题代码的时候,发现在类外实现类的成员函数的时候,成员函数中除了形参之外,没有类中定义的私有成员变量,当时有疑问:只列举了函数的形参,那么成员函数怎么知道调用哪一个私有成员变量呢?
后来下午学习了this指针,才知道了原因。
在调用类的成员函数时,貌似调用的过程中没有传递任何涉及函数私有变量的内容,但是实际上暗中传递了当前对象的地址。当我通过对象名.成员函数的方式去调用函数的时候,这个对象的地址就传递给成员函数了,在这个成员函数的内部有一个隐含的指针this,当前对象的地址就传递到this中去了,所以在成员函数中对私有成员变量的直接操作相当于对this指针所指对象的私有成员变量进行的操作。