Я программирую С++, используя стиль наименования подчеркивания (в отличие от случая с верблюдом), который также используется STL и boost. Однако, поскольку оба типа и переменные/функции называются всеми нижестоящими, объявление переменной-члена в следующем случае приведет к ошибкам компилятора (или, по крайней мере, к проблемам):
position position;
Переменная-член с положением, которая имеет позицию типа. Я не знаю, как еще назвать это: обычно это позиция, но это также позиция объекта. В случае с верблюдом это было бы хорошо с компилятором:
position position;
Но в С++ это вызывает проблемы. Из-за этого я не хочу переключаться на верблюжый футляр, использовать венгерскую нотацию или добавлять задние символы подчеркивания, поэтому мне интересно: хорошо ли называть член как тип в любом случае?
В 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 manager
audio audio; // The audio subsystem
Edit:
Мне было любопытно узнать, есть ли у Бьярна Страустрапа что-то по этому поводу. Видимо, у него нет, но он предлагает соглашения о кодировании, которые будут работать вокруг моих проблем с компилятором:
Например, капитализируйте нестандартные пользовательские типы библиотеки и запустите нетипы с строчной буквой
Это будет соответствовать STL и boost, поэтому я могу использовать это. Однако большинство из вас согласны с тем, что этого наименования следует избегать, компилируется оно или нет. Так же Страуструп:
Неразумно выбирать имена, которые отличаются только капитализацией.