c++ - 什么时候应该在 C++ 中使用 "this"关键字?

标签 c++ coding-style

Possible Duplicates:
Is excessive use of this in C++ a code smell

多年前,我养成了在访问成员变量时使用 this-> 的习惯。我知道这不是绝对必要的,但我认为它更清楚。

然后,在某个时候,我开始喜欢更简约的风格,并停止了这种做法......

最近,我的一位资历较浅的同龄人问我是否认为这是一个好主意,我发现我并没有一个很好的答案来满足我的喜好......这真的是一个完全风格的选择吗?为什么不在成员变量访问上加上 this-> 前缀更好?

最佳答案

虽然这是一个完全主观的问题,但我认为一般 C++ 社区更喜欢 not 拥有 this->。它杂乱无章,完全不需要。

有些人用它来区分成员变量和参数。更常见的做法是在成员变量前面加上一些东西,例如单个下划线或 mm_ 等。

在我看来,这更容易阅读。如果您需要 this-> 来区分变量,那么您做错了。更改参数名称(从 xnewX)或使用成员变量命名约定。

一致性是首选,因此您需要区分 少数 种情况,而不是强制自己使用 this->(请注意,在初始化列表中,这是完全明确的: x(x),其中成员x由参数x初始化),只是得到更好的变量名。

这是我唯一使用 this 的时间:无论出于何种原因,当我真正需要实例的地址时。

关于c++ - 什么时候应该在 C++ 中使用 "this"关键字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2337540/

相关文章:

c++ - Qt5 在多宿主网络上绑定(bind) TCP 套接字

调用时出现 C++ 编译器错误

c++ - "A::B::C v;"是否意味着 A 和 B 是命名空间而 C 是一个类?

c++ - 在构造函数参数列表中构造 boost::function 对象时出现错误 C2228

javascript - 是否存在适用于 Google 的 HTML/CSS/JS 样式指南的验证器/linter?

javascript - JavaScript 中的 "?:"表示法是什么?

c# - 是否有理由在 Try/Catch 上使用带有 ExceptionThrown 变量的 Try/Finally

c++ - 并发删除和字段访问

android - 检索项目 : No resource found that matches the given name '@android:style/TextAppearance.Holo.Widget.ActionBar.Title' 的父项时出错

coding-style - 编码风格...首先还是最后一个错误条件?