按照变量的类型命名是一种不好的做法吗?

2024-03-06

我使用下划线命名风格(而不是驼峰命名法)对 C++ 进行编程,STL 和 boost 也使用这种命名风格。但是,由于类型和变量/函数都命名为小写,因此如下的成员变量声明将导致编译器错误(或者至少是麻烦):

position position;

名为的成员变量position这是类型position。我不知道还能怎么称呼它:一般来说一个位置,但它也是位置的对象。在驼峰情况下,编译器可以这样做:

Position position;

但在 C++ 中它会导致问题。我不想切换到驼峰式大小写,使用匈牙利表示法或添加尾随下划线,所以我想知道:无论如何,像类型一样命名成员是一个好习惯吗?

在 C 语言中,为此使用神秘的单字母变量是很常见的:

int i;

但我发现这有点神秘:

position p;

我可以使用变量命名的经验法则来避免这种情况吗?

如果您需要做一些事情,我的代码中有更多示例:

mouse_over(entity entity) // Returns true if the mouse is over the entity

manager &manager; // A reference to the framework's manager

audio audio; // The audio subsystem

Edit:

我很好奇 Bjarne Stroustrup 本人对这个问题是否有话要说。显然,他没有,但他建议了可以解决我的编译器问题的编码约定:

例如,将非标准库用户定义类型大写并以小写字母开头非类型

这与 STL 和 boost 是一致的,所以我可能会使用它。然而,大多数人都同意无论编译与否,都应该避免这种命名。斯特鲁斯特鲁普也是如此:

选择仅大小写不同的名称是不明智的。


本地含义很少是该类型的良好唯一全局描述:

cartesian_point_2d position;  // rectangular, not polar coordinates
mouse_over(ui_entity entity); // not a business layer entity
xyz_manager& manager;         // what's a manager without something to manage?
audio_system audio;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

按照变量的类型命名是一种不好的做法吗? 的相关文章

随机推荐