C++this关键字

在 C++ 中,this 关键字是一个指针,指向调用成员函数的对象本身。它是一个隐式参数,自动传递给非静态成员函数。this 指针在以下几种情况下非常有用:

  1. 访问对象的成员:在成员函数中可以通过 this 指针访问对象的成员变量和成员函数。
  2. 返回对象自身:在链式调用(链式编程)中,可以通过返回 *this 来返回对象自身。
  3. 避免名称冲突:当成员变量和局部变量同名时,可以使用 this 指针来区分成员变量。

基本示例
下面是一个简单的示例,展示了 this 指针的基本用法:

#include <iostream>

class MyClass {
public:
    MyClass(int value) : member(value) {}

    void setMember(int value) {
        this->member = value;  // 使用 this 指针访问成员变量
    }

    int getMember() const {
        return this->member;  // 使用 this 指针访问成员变量
    }

    MyClass& increment() {
        ++this->member;  // 使用 this 指针访问成员变量
        return *this;  // 返回对象自身
    }

private:
    int member;
};

int main() {
    MyClass obj(10);

    std::cout << "Initial value: " << obj.getMember() << std::endl;

    obj.setMember(20);
    std::cout << "Updated value: " << obj.getMember() << std::endl;

    obj.increment().increment();  // 链式调用
    std::cout << "Incremented value: " << obj.getMember() << std::endl;

    return 0;
}

当成员变量和函数参数同名时,this 指针可以用来区分成员变量和局部变量。如下所示:

#include <iostream>

class MyClass {
public:
    MyClass(int member) {
        this->member = member;  // 使用 this 指针区分成员变量和局部变量
    }

    void setMember(int member) {
        this->member = member;  // 使用 this 指针区分成员变量和局部变量
    }

    int getMember() const {
        return this->member;  // 使用 this 指针访问成员变量
    }

private:
    int member;
};

int main() {
    MyClass obj(10);

    std::cout << "Initial value: " << obj.getMember() << std::endl;

    obj.setMember(20);
    std::cout << "Updated value: " << obj.getMember() << std::endl;

    return 0;
}

在上述代码中,构造函数和 setMember 函数的参数与成员变量同名。通过使用 this 指针,可以明确地访问成员变量。

总结

  • this 关键字 是一个指针,指向调用成员函数的对象本身。
  • 它用于在成员函数中访问对象的成员变量和成员函数。
  • 通过返回 *this 可以实现链式调用。
  • 当成员变量和局部变量同名时,this 指针可以用来区分成员变量和局部变量。

this 关键字在面向对象编程中非常重要,熟练掌握它的用法有助于编写更清晰和有效的代码。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值