在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名称的命名约定。
对于上面的例子,通常会省略,是的。 但是,无论哪种方式在语法上都是正确的。
是。 除非有歧义。
它也有时用来避免一些编译器优化虚函数调用。