我在编程中真的不喜欢的是变量名称的模糊性。我希望始终使用this
关键字来访问类成员,但在某些情况下我常常忘记使用它,这会导致一些不一致。
所以我想在访问类成员时被迫使用this
关键字。这会是一个坏主意吗?我认为可能有一个编译器选项,但我找不到任何关于它的东西。我正在使用g ++编译器。
答案 0 :(得分:7)
这是一个循环问题。您希望编译器在您访问类成员时没有前缀this->
时出错并通知您,这样您就不会意外地引用局部变量或函数参数......但出于同样的原因,如何是编译器应该知道你真的打算访问该成员?而且,如果你没有,你将如何访问局部变量或函数参数?
C ++根本就不是这样设计的。某些语言(如PHP)要求您必须使用this
来访问成员,并且任何其他访问都被视为尝试读取本地范围变量(无论它们是否存在),但是C ++没有那个。并且没有编译器切换来实现它。如果这让您担心,避免重复使用变量名称!
简而言之,这是一个无法解决的问题。