C++中对象调用成员函数this指针的作用
C++中对象调用成员函数this指针的作用
Sales_data total;//定义对象
total.isbn();//调用对象中的成员函数isbn
成员函数isbn()
通过一个名为this的额外隐式参数来访问调用它的对象total
。当我们调用一个成员函数时,用请求该函数的对象地址初始化this
。
例如,如果调用total.isbn()
,此时编译器负责把total的地址传递给isbn
的隐式形参this
,可以等价认为编译器将该调用重写成了如下的形式:
sales_data::isbn(&total)//伪代码
其中调用sales_data
的isbn
成员时传入了total的地址。在成员函数内部,我们可以直接使用调用该函数的对象的成员,而无须通过成员访问运算符来做到这一点,因为**this
所指的正是这个对象**。
对我们来说,this形参是隐式定义的。实际上,任何自定义名为this
的参数或变量的行为都是非法的。