Практические занятия по курсу ОиМП/C++ check — различия между версиями
Материал из Wiki - Факультет компьютерных наук
Mihaild (обсуждение | вклад) (→Прочее) |
Mihaild (обсуждение | вклад) (→Прочее) |
||
Строка 24: | Строка 24: | ||
# Конструктор от одного аргумента должен быть объявлен explicit. | # Конструктор от одного аргумента должен быть объявлен explicit. | ||
# Порядок аргументов функции: сначала входные параметры (по значению либо константой ссылке), затем выходные (по указателю). | # Порядок аргументов функции: сначала входные параметры (по значению либо константой ссылке), затем выходные (по указателю). | ||
− | |||
# При объявлении виртуальной функции следует использовать один и только один из спецификаторов virtual, final, override. | # При объявлении виртуальной функции следует использовать один и только один из спецификаторов virtual, final, override. | ||
# При объявлении переменной спецификаторы static/extern/... идут перед именем типа. | # При объявлении переменной спецификаторы static/extern/... идут перед именем типа. |
Версия 18:17, 13 октября 2014
Оформление
- Отступ - 4 пробела. Символы табуляции использовать для отступов запрещено.
- Отступами выделяются: тела функций, структур/классов, вложенных блоков.
- Бинарные операторы отбиваются пробелами с двух сторон, после унарных пробелы не ставятся: a += b + -c
- Пробелы после открывающей скобки и перед закрывающей скобкой не ставятся: f(1, (2 + 3)). Закрывающая скобка должна идти на той же строке, что и последнее выражение.
- Максимальная длина строки - 100 символов.
- Перед ; пробел не ставится. После ; в for ставится пробел.
- Пустые блоки записываются как {} (а не ;).
- Открывающая { пишется на той же строке, что и начало блока (if, while, for, объявление функции).
- else пишется на той же строке, что и закрывающая } от if: if (...) {...\n} else {
- Однострочные комментарии отделяются от кода двумя пробелами и начинаются с пробела.
- Пробелы в конце строки запрещены.
- Файл должен заканчиваться переводом строки.
- В range-base for двоеточие обрамляется пробелами.
- В начале/конце блока, после public/private/protected пустые строки не ставятся.
- Перед объявлением функции/структуры/класса - пустая строка обязательна.
Именование
Прочее
- Необходимо явно подключать заголовочные файлы, в которых объявляются используемые функции/классы/... Запрещено явно подключать один и тот же заголовочный файл дважды.
- В качестве логических операторов следует использовать &&, ||, ... Их аналоги and, or, ... запрещены.
- Запрещено использовать приведение типов в стиле C - следует использовать *_cast.
- Конструктор от одного аргумента должен быть объявлен explicit.
- Порядок аргументов функции: сначала входные параметры (по значению либо константой ссылке), затем выходные (по указателю).
- При объявлении виртуальной функции следует использовать один и только один из спецификаторов virtual, final, override.
- При объявлении переменной спецификаторы static/extern/... идут перед именем типа.