许多 C++ 代码使用语法约定来标记成员变量。常见的例子包括
- m_ memberName 用于公共成员(完全使用公共成员的地方)
- _ 私有成员或所有成员的 memberName
其他人试图在使用成员变量时强制使用 this-> _成员_。
根据我的经验,大多数大型代码库都无法始终如一地应用这些规则。
在其他语言中,这些约定远没有那么普遍。我只是偶尔在 Java 或 C# 代码中看到它。我想我从未在 Ruby 或 Python 代码中看到过它。因此,更现代的语言似乎有一种趋势,即不对成员变量使用特殊标记。
这个约定在今天的 C++ 中是否仍然有用,或者它只是一个不合时宜的东西。特别是因为它在库中的使用如此不一致。其他语言不是表明没有成员前缀也可以吗?
原文由 VoidPointer 发布,翻译遵循 CC BY-SA 4.0 许可协议
您必须小心使用前导下划线。保留单词中大写字母前的前导下划线。例如:
_Foo
_L
都是保留字,而
_foo
_l
不是。在其他情况下,不允许在小写字母之前使用前导下划线。在我的具体情况下,我发现 _L 恰好被 Visual C++ 2005 保留,并且冲突产生了一些意想不到的结果。
我对标记局部变量的用处持怀疑态度。
这是一个关于保留哪些标识符的链接: 关于在 C++ 标识符中使用下划线的规则是什么?