Каковы предпочтительные соглашения по именованию du jour для c ++? - PullRequest
3 голосов
/ 12 декабря 2008

Я очень смущен, глядя на библиотеку наддува и stl, а затем на примеры людей. Кажется, что имена с заглавными буквами перемежаются со всеми строчными буквами, разделенными подчеркиванием.

Что именно должно быть сделано в эти дни? Я знаю, что в мире .NET есть свой собственный набор соглашений, но он выглядит совершенно иначе, чем сфера C ++.

Ответы [ 4 ]

9 голосов
/ 12 декабря 2008

Какую банку с червями вы открыли.

Стандартная библиотека C ++ использует underscore_notation для всего, потому что это то, что стандартная библиотека C использует.

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

Вы увидите, что boost использует те же обозначения, потому что часто их библиотеки рассматриваются для будущих стандартов.

Помимо этого, существует много соглашений, обычно использующих разные обозначения для обозначения различных типов символов. Обычно используется CamelCase для пользовательских типов, таких как классы и typedefs, и mixedCase для переменных, особенно для дифференциации этих двух, но это, конечно, не универсальный стандарт.

Существует также Венгерская нотация , которая дополнительно дифференцирует определенные типы переменных, хотя упоминание этой фразы может вызывать враждебность у некоторых кодеров.

Лучший ответ, как хорошего программиста на C ++, - принять любое соглашение, используемое в коде, в который вы погружены.

2 голосов
/ 12 декабря 2008

Нет хорошего ответа. Если вы интегрируетесь с существующей кодовой базой, имеет смысл соответствовать их стилю. Если вы создаете новую кодовую базу, возможно, вы захотите установить простые правила.

У Google есть .

0 голосов
/ 12 декабря 2008

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

FWIW Я использую руководство по стилю Google C ++ (с некоторыми изменениями).

http://google -styleguide.googlecode.com / SVN / багажник / cppguide.xml

0 голосов
/ 12 декабря 2008

Это будет отличаться в зависимости от библиотеки и организации.

Для библиотеки утилит разработчика, которую я создаю, например, я включаю дружественные модули-обертки для различных соглашений в стиле соглашения. Так, например, модуль оболочки MFC использует нотацию m_typeMemberVariable для членов, тогда как модуль оболочки STL использует member_variable. Я пытаюсь сделать так, чтобы любой используемый интерфейс имел стиль, типичный для этого типа интерфейса.

Проблема с универсальным стилем заключается в том, что каждый должен был бы согласиться, и (например) для каждого, кто ненавидит венгерскую нотацию, есть кто-то еще, кто думает, что не использование венгерской нотации умаляет основную ценность понятности кода , Так что вряд ли в скором времени появится универсальный стандарт для C ++.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...