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

相关推荐
m4Rk_12 分钟前
【论文阅读】Agent记忆机制(112):MemFit——保留对话原文,用多路检索降低长期记忆成本
论文阅读·人工智能·学习·开源·github
xcLeigh36 分钟前
GitHub Copilot Workspace:从 Issue 到 PR 的 AI 全流程开发体验
人工智能·ai·github·copilot·issue·isuse
qq_4017004136 分钟前
Qt Modbus 源码剖析:从 QModbusClient 到工业级通信框架
开发语言·qt·系统架构
星夜离尘5638 分钟前
MATLAB 角度解缠遇到丢样:先分段,再说明圈数为什么不可恢复
开发语言·matlab
我命由我123451 小时前
6-2.Python 异常处理 - 异常捕获(捕获指定异常、常见异常类型、异常信息)
java·运维·开发语言·python·http·https·java-ee
ZoeLandia1 小时前
React08:自定义 Hook
开发语言·前端·react.js·typescript
GreenHandBruce1 小时前
基于Qt 6.12.0 + FFmpeg 9.0.2的4k视频播放器
qt·ffmpeg·音视频
zxanz11 小时前
内网业务 HTTPS 落地:不用公网解析也能部署可信 SSL
github
C++ 老炮儿的技术栈1 小时前
机器人的坐标,像 XYZ 的坐标值,是用单精度浮点还是用双精度浮点?
c语言·c++·人工智能·单片机·c
zaizai10071 小时前
STL深度剖析2
java·c++·算法