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

可能重复:
在C ++中过度使用这个代码的气味
什么时候应该在C ++中使用“this”关键字?
有什么理由使用这个 – >

在C ++中,关键字“this”通常被忽略? 例如:

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

而不是:

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

是的,这不是必需的,通常被省略。 在variables被覆盖之后,访问variables可能是必需的:

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

另外,这个:

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

这是非常不好的风格; 如果您需要具有相同名称的初始化程序,请使用以下表示法:

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

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

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

无论哪种方式都行得通,但许多地方都有编码标准,可以指导开发者。 如果这样的政策不到位,只要跟随你的心。 有一件事情,但是,如果你使用它,它真的帮助代码的可读性。 特别是如果您不遵循关于类级别variables名称的命名约定。

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

是。 除非有歧义。

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