是否可以在C++中强制使用 "this" 关键字?

Is it possible to force the use of the "this" keyword in C++?

本文关键字:this 关键字 C++ 是否      更新时间:2023-10-16

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

所以我想在访问类成员时被迫使用 this 关键字。这会是个坏主意吗?我想可能有一个编译器选项,但我找不到任何关于它的信息。我正在使用 g++ 编译器。

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

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

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