gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 22:34:54 31 4
gpt4 key购买 nike

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

position position;

一个名为 position 的成员变量,其类型为 position。我不知道怎么命名它:它通常是一个位置,但它也是对象的位置。在 Camel 的情况下,编译器会很好:

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

编辑:

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

For example, capitalize nonstandard library user-defined types and start nontypes with a lowercase letter

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

it is unwise to choose names that differ only by capitalization.

最佳答案

局部含义很少是对类型的良好唯一全局描述:

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;

关于c++ - 按类型命名变量是一种不好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3592378/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com