21xrx.com
2024-09-20 00:50:47 Friday
登录
文章检索 我的文章 写文章
C++中this指针的含义详解
2023-07-04 11:31:47 深夜i     --     --
C++ this指针 含义 详解

在C++中,this指针是一个关键字,它指向当前对象的地址。this指针主要用于在成员函数中访问当前对象的成员变量和成员函数,特别是当成员变量和局部变量同名时,使用this指针可以明确地指出所访问的是成员变量。

this指针是在对象创建时隐式地传递给成员函数的,它指向该对象的地址。在一个成员函数中,this指针可以看作一个常量指针,因为它指向的地址不能被修改。同时,this指针也可以看作一个隐含的参数,因为它在函数调用时自动传递。

使用this指针的作用有以下几点:

1. 访问当前对象的成员变量和成员函数

在成员函数中,可以使用this指针来访问当前对象的成员变量和成员函数,而不需要通过对象名访问。例如:


class Person {

private:

  string name;

  int age;

public:

  void setName(string name)

    this->name = name;

  

  void setAge(int age)

    this->age = age;

  

  void printInfo()

    cout << "Name: " << this->name << endl;

    cout << "Age: " << this->age << endl;

  

};

在printInfo()函数中,使用this指针来访问当前对象的name和age成员变量。

2. 解决成员变量和局部变量同名的问题

当成员变量和局部变量同名时,使用this指针可以明确地指出所访问的是成员变量。例如:


class Person {

private:

  string name;

  int age;

public:

  void setName(string name)

    this->name = name;

  

  void setAge(int age)

    this->age = age;

  

  void printInfo()

    string name = "Tom";

    int age = 20;

    cout << "Name: " << this->name << endl;

    cout << "Age: " << this->age << endl;

  

};

在printInfo()函数中,定义了一个名为name和一个名为age的局部变量。使用this指针可以明确地指出所访问的是成员变量。

3. 在成员函数中返回当前对象的引用

在成员函数中,可以使用this指针返回当前对象的引用,以便在函数调用链中进行连续调用。例如:


class Person {

private:

  string name;

  int age;

public:

  Person& setName(string name) {

    this->name = name;

    return *this;

  }

  Person& setAge(int age) {

    this->age = age;

    return *this;

  }

  void printInfo()

    cout << "Name: " << this->name << endl;

    cout << "Age: " << this->age << endl;

  

};

在setName()和setAge()函数中,使用this指针返回当前对象的引用。这样可以在函数调用链中进行连续调用:


Person p;

p.setName("Tom").setAge(20).printInfo();

在C++中,this指针是一个非常重要的概念。它可以帮助我们在成员函数中访问当前对象的成员变量和成员函数,解决成员变量和局部变量同名的问题,以及在函数调用链中进行连续调用。通过深入了解this指针的使用方法和含义,我们可以更加灵活地设计和实现C++代码。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复