【问题标题】:Why some object names starts with single or multiple underscores in c++? [duplicate]为什么某些对象名称在 C++ 中以单个或多个下划线开头? [复制]
【发布时间】:2016-06-10 12:01:44
【问题描述】:

我在 c++ 库中多次看到名称以下划线开头的对象的音调。 我知道一些有用的情况,例如:

    class Person {
    private: 
       unsigned int age;
       //...
    public:
       Person(unsigned int _age): age(_age) {}
    };

在这里区分逻辑上相同的对象_ageage 很有用。

但也存在全局函数名称(不是来自类)也有单个或多个下划线的情况。所以我想从总体上更从意识形态上理解这一点。

所以:

这种命名方式有什么好处?

什么时候需要使用单个下划线,什么时候需要多个下划线开头?

【问题讨论】:

  • 双下划线通常保留给编译器内部使用作为约定。单下划线保留用于库函数以防止冲突。
  • 在这种特定情况下,Person(unsigned int age):age(age){} 也是合法的(并产生相同的代码)。
  • @ParagAgarwal - 双下划线总是保留,而不是有时。

标签: c++ naming-conventions naming


【解决方案1】:

从来没有要求对变量名使用初始单下划线或双下划线前缀。

这只是某人的命名约定或习惯。

【讨论】:

  • 但有一个要求,不要按照标准使用它们。
  • 仅某些类型;即下划线后跟一个大写字母。
  • @SamVarshavchik:也是双下划线。
  • 以及全局命名空间中的所有双下划线和下划线。
最近更新 更多