C++类中关键词this的含义【指向当前对象的指针】

this 关键字的含义

在 C++ 中,this指向当前对象的指针。它存在于所有非静态成员函数中,指向调用该成员函数的对象。


1. this 的基本概念

class MyClass {
public:
    void show() {
        std::cout << "Address of this object: " << this << std::endl;
    }
};
int main() {
    MyClass obj1, obj2;
    
    obj1.show();  // 输出 obj1 的地址
    obj2.show();  // 输出 obj2 的地址
}

解析

  • this 指针存储了当前对象(即调用 show() 的对象)的内存地址。
  • obj1.show() 中的 this 指向 obj1obj2.show() 中的 this 指向 obj2

2. this 主要用途

(1) 解决成员变量和局部变量重名

class MyClass {
private:
    int value;
public:
    void setValue(int value) { // 形参和成员变量同名
        this->value = value;  // 使用 this 访问成员变量
    }
};

解析

  • this->value 表示类的成员变量 value
  • value(不带 this->)是形参,二者名称相同时,this-> 让编译器区分它们。

(2) 链式调用

class MyClass {
private:
    int value;
public:
    MyClass& setValue(int v) {
        value = v;
        return *this; // 返回当前对象的引用
    }

    void show() {
        std::cout << "Value: " << value << std::endl;
    }
};
int main() {
    MyClass obj;
    obj.setValue(10).show(); // 链式调用
}

解析


(3) 在类方法中返回当前对象的指针

class MyClass {
public:
    MyClass* getThis() {
        return this;
    }
};

解析

  • getThis() 返回当前对象的地址。

(4) this 不能用于静态成员函数

class MyClass {
public:
    static void staticFunc() {
        // std::cout << this;  ❌ 错误
    }
};

解析

  • staticFunc()静态成员函数,它不依赖具体对象,所以不能使用 this

总结

  1. this 是一个指向当前对象的指针,只能用于非静态成员函数。
  2. 主要用途:
    • 解决成员变量和形参重名
    • 实现链式调用
    • 返回当前对象的指针
  3. 静态成员函数 不能使用 this,因为它们不属于某个具体对象。

这样,你在 C++ 编程中遇到 this 关键字时,就能快速理解它的用途了! 🚀

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

昊虹AI笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值