мета-данные страницы
Это старая версия документа!
Руководство по стилю в C++
Основано на руководстве от google, но не идентично ему.
Заголовочные файлы
Область видимости
Классы
Функции
Именование
| case | type | пример |
|---|---|---|
| PascalCase | class | UserAccount |
| struct | Point | |
| typedef | StringList | |
| using | IntPtr | |
| enum | Color | |
| camelCase | функции | calculateTotal |
| методы классов | addUser | |
| snake_case | переменные | user_age |
| параметры | file_path | |
| члены class (*_) | account_balance_ | |
| члены struct | coordinates | |
| accessor-ы, get | getUserName | |
| mutator-ы, set | setUserEmail | |
| namespace | utilities | |
| UPPER_SNAKE_CASE | макросы | MAX_BUFFER_SIZE |
| const | DEFAULT_TIMEOUT | |
| constexpr | PI | |
| члены enum | RED |
Комментарии
Комментарии в шапке файла
Если файл с кодом (например .h файл) объявляет несколько абстракций для «внешнего» использования (общие функции, связанные классы и тп), то добавляйте комментарий в шапку, описывающий эту коллекцию абстракций. Не размещайте в этом комментарии детальное описание отдельных абстракций.
Комментарии классов или структур
// Перебор содержимого GargantuanTable. // Пример: // std::unique_ptr<GargantuanTableIterator> iter = table->NewIterator(); // for (iter->Seek("foo"); !iter->done(); iter->Next()) { // process(iter->key(), iter->value()); // } class GargantuanTableIterator { ... };