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

可能的复制品:
在 C + + 中过度使用这个代码是不是有点奇怪
什么时候应该在 C + + 中使用“ this”关键字?
有什么理由使用这个->

在 C + + 中,关键字 this是否经常被省略? 例如:

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

而不是:

Person::Person(int age) {
this->_age = age;
}
222048 次浏览

For the example case above, it is usually omitted, yes. However, either way is syntactically correct.

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

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

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

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

是的,除非有歧义。

无论哪种方式都可以工作,但是许多地方都有适当的编码标准,这些标准将以这种或那种方式指导开发人员。如果这样的政策没有到位,只要跟随你的心。不过有一件事,如果您使用它,它确实有助于提高代码的可读性。特别是如果你没有遵循类级别变量名的变数命名原则。