this指针

来源:互联网 发布:淘宝动漫周边网店 编辑:程序博客网 时间:2024/06/11 12:36

this指针是类的自动生成,自动隐藏的私有成员,它存在于类的非静态成员函数中,指向被调用函数所在的对象,全局仅有一个this指针,当一个对象被创建时,this指针就存放指向对象数据的首地址。

#include<iostream>
using namespace std;
class Point
{
  private:
  int x,y;
  public:
  Point(int a,int b)
  {
    x=a;
    y=b;
  }
  void MovePoint(int a,int b)
  {
    x+=a;
    y+=b;
  }
  void print()
  {
    cout<<"x="<<x<<"y="<<y<<endl;
  }  
};
int main()
{
  Point point1(10,10);
  point1.MovePoint(2,2);
  point1.print();
  return 0;
}
当point1调用MovePoint(2,2)函数是,即将point1对象的地址传给了this指针。

MOVEPOINT函数的原型应该是void movepoint(point*this,inta,intb);第一个参数是指向该类对象的一个指针

这样point1的地址传递给了this,所以在movepoint函数中便显示的写成

void movepoint(int a ,int b){this->x+=a;this->y+=b;}

也就是说this时时刻刻指向实例本身