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中保存的地址

 

posted @ 2018-12-18 11:40  小牙签123  阅读(156)  评论(0)    收藏  举报