2016-06-10 10 views
0

Я много раз видел в библиотеках C++ библиотеки объектов, имена которых начинаются с символов подчеркивания. Я знаю несколько случаев, когда это полезно, например:Почему некоторые имена объектов начинаются с одного или нескольких символов подчеркивания в C++?

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

здесь полезно различать логически те же объекты _age, age.

Но есть также случаи, когда имена глобальных функций (не из класса) также имеют один или несколько символов подчеркивания. Поэтому я хотел бы понять это в целом и идеологически.

Итак:

Каковы преимущества для такого рода имен?

Когда нужно использовать одиночные и когда несколько символов подчеркивания в начале?

+0

Двойные подчеркивания обычно зарезервированы для внутреннего использования компилятора в качестве условного обозначения. Отдельные подчеркивания зарезервированы для функций библиотеки для предотвращения коллизий. –

+0

В этом конкретном случае «Person (unsigned int age): age (age) {}» также будет законным (и выдает тот же код). – IInspectable

+0

@ParagAgarwal - двойные подчеркивания ** всегда ** зарезервированы, а не иногда. –

ответ

0

Никогда не требуется использовать начальный сингл или префикс с двойной подчеркиванием для имен переменных.

Это просто чья-то конвенция об именах или привычка.

+4

Но есть требование не использовать их в стандарте. – NathanOliver

+0

Только определенные типы; а именно подчеркивание, за которым следует буква в верхнем регистре. –

+0

@SamVarshavchik: Также двойные подчеркивания. –