关于this指针

来源:互联网 发布:舞蹈 知乎 编辑:程序博客网 时间:2024/05/05 17:58

this指针指向本类

 

 

现在我有一个类CRect  
  定义如下:  
  class   CRect  
  {  
  public:  
          void   SetColor(int);  
  ....  
  };  
   
  好了,我要定义两个实例(instance)  
   
  CRect   rect1;  
  CRect   rect2;  
   
  然后呼叫成员函数SetColor  
  rect1.SetColor(3);  
  rect2.SetColor(10);  
   
  事实上,在编译器中这些被转换成如下:  
  rect1.SetColor(3,(CRect*)&rect1);  
  rect2.SetColor(10,(CRect*)&rect2);  
  看见了吗?编译器给我们添加的就是指针--this指针--隐藏的this指针

 

 最后事实上形成这样的代码:  
  CRect::SetColor(3,(CRect*)&rect1);  
  CRect::SetColor(10,(CRect*)&rect2);

 

===========================

  当你进入一个房子后,

  你可以看见桌子、椅子、地板等,

  但是房子你是看不到全貌了。

  对于一个类的实例来说,

  你可以看到它的成员函数、成员变量,

  但是实例本身呢?

  this是一个指针,它时时刻刻指向你这个实例本身

 

原创粉丝点击