c++ this 指针的用途

C++ this 指针 超通俗讲解

我用最简单、最容易记住的方式给你讲清楚 this 指针到底是什么、用来干嘛。


一、this 是什么?

this 是 C++ 类里自带的一个隐藏指针 它指向 当前调用这个成员函数的对象自己。

你可以理解成:this = 我自己(当前对象)


二、this 指针 4 个核心用途(背会就够用)

1. 区分成员变量和局部变量 / 参数重名

最常用!!!

cpp

运行

复制代码
class Person {
    int age;  // 成员变量
public:
    void setAge(int age) {  // 参数名和成员同名
        this->age = age;  // this->age = 成员变量
    }
};

this->age 明确告诉编译器:我要改的是我自己的成员变量!


2. 返回对象本身,实现链式调用

cpp

运行

复制代码
Person& setAge(int age) {
    this->age = age;
    return *this;  // 返回自己
}

调用时可以:

cpp

运行

复制代码
p.setAge(18).setName("zhangsan");

3. 在成员函数里获取当前对象的地址

cpp

运行

复制代码
void showAddress() {
    cout << "我的地址:" << this << endl;
}

4. 解决类中访问自身的问题(比如删除自己)

cpp

运行

复制代码
void destroy() {
    delete this;
}

三、最直白的一句话总结

this 就是指向当前对象自己的指针,让你在成员函数里明确访问 "我这个对象" 的成员。


四、最简单记忆口诀

  • 谁调用函数,this 就指向谁
  • 同名冲突用 this
  • *返回自己用 this

五、你必须记住的 2 条规则

  1. 只有类的 非静态成员函数才有 this
  2. 静态函数没有 this

相关推荐
智感子14 分钟前
智能称重·数据上云:从仪表读数到可追溯的计量凭证
开发语言·php
\光辉岁月/23 分钟前
7.javase-面向对象
java·开发语言
weixin_5310946938 分钟前
heap_4内存管理
java·开发语言·算法
余额瞒着我当琳41 分钟前
红黑树的实现--红黑树的概念、规则、效率、结构、旋转、查找、验证
数据结构·c++·算法
疯狂的维修44 分钟前
关于用C#写电机起保停控制
开发语言·c#
青少儿编程课堂1 小时前
AC自动机多模式串匹配精讲:校园关键词巡检实战解析
c++·python·算法·bfs·信息学竞赛
longlongzihan1 小时前
LeetCode 5. 最长回文子串:从暴力匹配到中心扩展的思维演进
c++·算法·leetcode
多弗朗皮卡丘2 小时前
C++继承
c++·继承
geovindu2 小时前
rust: Abstract Factory pattern
开发语言·后端·设计模式·rust·抽象工厂模式
“AI国潮设计-小江”2 小时前
《Python+SDXL实战:用ControlNet批量生成“英歌舞麻将糕”IP,附自动化脚本与商用思路》
开发语言·人工智能·python·prompt·aigc