C++ 是否有可能强制使用;这";C++;?

C++ 是否有可能强制使用;这";C++;?,c++,C++,在编程中我最不喜欢的一件事是变量名称的模糊性。我希望总是使用this关键字来访问类成员,但在某些情况下我经常忘记使用它,这会导致一些不一致性 因此,在访问类成员时,我想强制使用this关键字。这是个坏主意吗?我想可能有一个编译器选项,但我找不到任何关于它的东西。我正在使用g++编译器。这是一个循环问题。您希望编译器在访问类成员时,在不加前缀的情况下出错并通知您,this->,这样您就不会意外地引用局部变量或函数参数……但出于完全相同的原因,编译器如何知道您真的打算访问该成员?如果没有,您将如何访

在编程中我最不喜欢的一件事是变量名称的模糊性。我希望总是使用
this
关键字来访问类成员,但在某些情况下我经常忘记使用它,这会导致一些不一致性


因此,在访问类成员时,我想强制使用
this
关键字。这是个坏主意吗?我想可能有一个编译器选项,但我找不到任何关于它的东西。我正在使用g++编译器。

这是一个循环问题。您希望编译器在访问类成员时,在不加前缀的情况下出错并通知您,
this->
,这样您就不会意外地引用局部变量或函数参数……但出于完全相同的原因,编译器如何知道您真的打算访问该成员?如果没有,您将如何访问局部变量或函数参数

C++根本不是这样设计的。有些语言,如PHP,要求您必须使用<代码> < <代码>访问成员,而其他任何访问都被视为读取本地范围变量(无论它们是否存在)的尝试,但C++没有。而且没有编译器开关来实现这一点。如果这让您担心,请避免重复使用变量名


简而言之,这不是一个无法解决的问题。

程序员通常通过在成员前面加上其他前缀来解决这个问题,例如
m
@TomásBadan:当然是糟糕的程序员。@LightnessRacesinOrbit谷歌风格指南建议使用trail()@TomásBadan:谷歌风格指南说了很多愚蠢的事情,我喜欢永远不要使用异常。你最好完全忽略它。你为什么按面值来看待它?这是因为谷歌是一家知名的大公司吗?@BenjaminLindley:当然,在这一组合中分散着一些被误导但最终还是优秀的程序员;)