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

标签 c++

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

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

最佳答案

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

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

总之,这是一个无法解决的非问题。

关于c++ - 是否可以在 C++ 中强制使用 "this"关键字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27175486/

相关文章:

c++ - 从编译时已知大小的文字构造类似对象的字符串

c++ - 如何将来自 gsoap 的异常消息发送到 std::string?

c++ - 除非使用完整的相对路径,否则 Eclipse CDT 无法找到包含文件

c++ - 如何使用 OpenCV 在高度压缩的图像中添加 "dequantize"宏 block ?

C++ - 在覆盖期间调用析构函数时的类成员

c++ - 如何从 Variadics 模板获取参数

c++ - linux上如何使用编程方式拦截正在运行的进程调用的系统调用?

c++ - 是否有更简洁的方法来包含基于宏定义部分名称的文件?

c++ - 应该避免带有尾随返回类型的 main 吗?

c++ 和 matlab 浮点计算