可能重复:
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;
}
答案 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)
是。除非有歧义。
有时也会使用它来避免某些编译器优化虚函数调用。