C++this指针

问题1:子类中调用自身内部变量时,使用this指针或者不使用,有什么区别吗

结论:子类中访问自身的成员变量时,使用 this 指针和不使用 this 指针在功能上没有区别

何时应该使用this指针

  • 场景1:当成员变量和局部变量(或参数)同名时,使用 this 指针可以明确区分成员变量和局部变量
class Child {
public:
    int value;
    void setValue(int value) {
        this->value = value;  // 使用 this 指针明确指向成员变量
    }
};

如果不使用 this 指针,编译器会优先使用局部变量或参数,导致成员变量被遮蔽(Shadowing)

void setValue(int value) {
    value = value;  // 这里的两个 value 都是参数,成员变量没有被修改
}
  • 场景2:实现链式调用(Fluent Interface)时
    后面自己再看看这个例子
class Child {
public:
    int value;
    Child& setValue(int value) {
        this->value = value;
        return *this;  // 返回当前对象的引用
    }
};

int main() {
    Child c;
    c.setValue(10).setValue(20);  // 链式调用
    return 0;
}
  • 场景3:提高代码可读性
    使用 this 指针可以明确表示当前操作的是成员变量,而不是局部变量或全局变量

你可能感兴趣的:(数据结构)