Я программирую на 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:
Мне было любопытно узнать, есть ли у самого Бьярна Страуструпа что-то сказать по этому вопросу. Очевидно, что нет, но он предлагает соглашения по кодированию, которые обойдут мои проблемы с компилятором:
Например, вводить пользовательские типы нестандартной библиотеки с прописной буквы и начинать нетипизмы со строчной буквы
Это будет соответствовать STL и boost, так что я мог бы использовать это. Однако большинство из вас согласны с тем, что следует избегать такого именования, независимо от того, компилируется оно или нет. Как и Страуструп:
неразумно выбирать имена, которые отличаются только заглавными буквами.