在C ++中使用“this”关键字

时间:2011-07-21 16:41:28

标签: c++ this

  

可能重复:
  Is excessive use of this in C++ a code smell
  When should you use the "this" keyword in C++?
  Is there any reason to use this->

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

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

相反:

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

6 个答案:

答案 0 :(得分:77)

是的,它不是必需的,通常会被省略。在范围中覆盖变量后,可能需要访问变量:

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

另外,这个:

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

风格很差;如果您需要具有相同名称的初始化程序,请使用此表示法:

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

答案 1 :(得分:19)

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

答案 2 :(得分:7)

无论哪种方式都有效,但许多地方都有编码标准,可以指导开发人员这样或那样。如果没有这样的政策,请跟随你的心。但有一件事,如果您使用它,它真的有助于代码的可读性。特别是如果你没有遵循类级变量名的命名约定。

答案 3 :(得分:5)

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

答案 4 :(得分:3)

对于上面的示例情况,通常省略,是的。但是,无论哪种方式在语法上都是正确的。

答案 5 :(得分:3)

是。除非有歧义。

有时也会使用它来避免某些编译器优化虚函数调用。