了解this指针

this 指针

  首先,我们要知道C++中,类的成员函数可以访问类的数据,那么成员函数如何知道哪个对象的数据成员要被操作呢?

  原因在于每个对象都拥有一个指针:this指针,通过this指针来访问自己的地址。this指针并不是对象的一部分,this指针所占的内存大小是不会反应在sizeof操作符上的。this指针的类型取决于使用this指针的成员函数类型以及对象类型。

一、什么是this指针


a.在 C++ 中,每一个对象都能通过 this 指针来访问自己的地址。this 指针是所有成员函数的隐含参数。因此,在成员函数内部,它可以用来指向调用对象。

b.this只能在成员函数中使用

c.this指针不能再静态函数中使用,静态函数如同静态变量一样,他不属于具体的哪一个对象,静态函数表示了整个类范围意义上的信息,而this指针却实实在在的对应一个对象,所以this指针不能被静态函数使用。

d.this指针的创建:this指针在成员函数的开始执行前构造的,在成员的执行结束后清除。

e.this指针只有在成员函数中才有定义。

二、如何用this指针

#include<iostream>
using namespace std;
class A{
 private:
  int x;
 public:
  A(){
   x=0;
  }
  void display(){
   cout<<this<<endl;
   cout<<this->x<<endl;
   cout<<x<<endl;
   cout<<(*this).x<<endl;
  }
};
int main(void){
    A a;
    a.display();
}


 

猜你喜欢

转载自blog.csdn.net/weixin_63246738/article/details/130349092