Я много раз видел в библиотеках C++ библиотеки объектов, имена которых начинаются с символов подчеркивания. Я знаю несколько случаев, когда это полезно, например:Почему некоторые имена объектов начинаются с одного или нескольких символов подчеркивания в C++?
class Person {
private:
unsigned int age;
//...
public:
Person(unsigned int _age): age(_age) {}
};
здесь полезно различать логически те же объекты _age
, age
.
Но есть также случаи, когда имена глобальных функций (не из класса) также имеют один или несколько символов подчеркивания. Поэтому я хотел бы понять это в целом и идеологически.
Итак:
Каковы преимущества для такого рода имен?
Когда нужно использовать одиночные и когда несколько символов подчеркивания в начале?
Двойные подчеркивания обычно зарезервированы для внутреннего использования компилятора в качестве условного обозначения. Отдельные подчеркивания зарезервированы для функций библиотеки для предотвращения коллизий. –
В этом конкретном случае «Person (unsigned int age): age (age) {}» также будет законным (и выдает тот же код). – IInspectable
@ParagAgarwal - двойные подчеркивания ** всегда ** зарезервированы, а не иногда. –