21xrx.com
2025-06-22 23:05:08 Sunday
登录
文章检索 我的文章 写文章
C++函数后面的this指针
2023-07-05 09:04:47 深夜i     16     0
C++ 函数 this指针

C++中的方法是面向对象编程的核心,它由函数和成员变量组成。但与普通函数不同的是,C++方法中还有一个特殊的指针——this指针。

this指针是用来指向该对象本身的指针,在方法中可以使用它来访问对象的成员变量和方法。由于每个对象都有自己的成员变量,因此每个对象都有自己独特的this指针。

在C++中,对象调用其方法时会自动传递this指针作为第一个参数。因此,方法的第一个参数通常是一个指向该对象本身的指针,即this指针。

例如,下面的代码中,类A中的方法func打印出该对象的成员变量a和this指针的地址:

class A
{
public:
  int a;
  void func()
  {
    printf("a=%d, this=%p\n", a, this);
  }
};
int main()
{
  A obj1, obj2;
  obj1.a = 1;
  obj2.a = 2;
  obj1.func(); // 输出 a=1, this=0x7ffc71f36b50
  obj2.func(); // 输出 a=2, this=0x7ffc71f36b40
  return 0;
}

从输出结果可以看出,obj1和obj2调用的是同一个方法func,但它们的this指针的值不同,因为它们是不同的对象。

this指针的使用要注意以下几点:

1. 在类的方法中默认有一个隐含的this指针参数,因此在方法内可以直接使用成员变量和方法,不必像普通函数一样传递参数。

2. 在类的非静态方法中,this指针是一个常量指针,不能被修改。

3. 如果方法是静态的,则不存在隐含的this指针参数。

综上所述,this指针是C++中非常重要的一个概念,是实现面向对象编程的关键。程序员必须理解它的作用和使用方法,在编写类的方法时妥善运用它。

  
  

评论区