7 类-this指针
this指针详解
一、什么是this指针
简单的说this指针,是指向“当前”使用对象的指针。
二、探究
当我们调用成员函数时,其实是替某个对象调用它。
struct Sales_data{ std::string isbn() const {return bookNo; }; Sales_data&(const Sales_data&); }
Sales_data total;
total.isbn(); //当我们调用成员函数isbn()时,其实是替total对象调用它。
isbn()通过this这个隐式参数来访问调用它的total对象,编译器负责将total的指针传给isbn()的隐式形参this。
total.isbn(); //可以等价的看为Sales_data::(&total),调用isbn时传入了total的地址
正因为this指向当前对象,在函数内部我们可以直接访问该对象的成员。
任何对类成员的直接访问都被看成this的隐式引用,当isbn()使用bookNo时,其实相当于this->bookNo。
std::string isbn() const {return bookNo; }; //函数后面加const,是因为this总是指向“当前这个”对象,所以this是一个常量指针,不允许改变this中保存的地址
浙公网安备 33010602011771号