在C++中使用"this"关键字

Use of "this" keyword in C++

本文关键字:this 关键字 C++      更新时间:2023-10-16

可能重复:
在C++中过度使用这是一种代码气味吗
您应该在C++中何时使用"this"关键字
有什么理由使用这个->

在C++中,关键字this通常被省略吗?例如:

Person::Person(int age) {
    _age = age;
}

与相反

Person::Person(int age) {
    this->_age = age;
}

是的,它不是必需的,通常会被省略。在变量在作用域中被重写后,访问变量可能需要它:

Person::Person() {
    int age;
    this->age = 1;
}

此外,这个:

Person::Person(int _age) {
    age = _age;
}

这是相当糟糕的风格;如果您需要具有相同名称的初始值设定项,请使用以下表示法:

Person::Person(int age) : age(age) {}

更多信息请点击此处:https://en.cppreference.com/w/cpp/language/initializer_list

这是程序员的偏好。就我个人而言,我喜欢使用this,因为它明确地标记了对象成员。当然,_也做同样的事情(只有当您遵循惯例时(

无论哪种方式都有效,但许多地方都有适当的编码标准,这些标准将以某种方式指导开发人员。如果没有这样的政策,那就随心而动吧。不过,有一点是,如果你确实使用了它,它确实有助于代码的可读性。尤其是如果你没有遵循类级变量名的命名约定。

this指向在其成员函数中引用它的对象,因此它是可选的。

是。除非存在歧义。

对于上面的例子,它通常被省略,是的。然而,任何一种方式在语法上都是正确的。