Ответы на часто возникающие вопросы при изучении C++, мои типичные ошибки, ссылки
[xcut]
— Хороший стиль: ul
- Имена переменных, аргументов начинаются с прописной буквы, если состоит из нескольких слов, то чередуется, например — product и productPrice /ul
— Мои типичные ошибки: ul
- Использование в конструкторе и в функциях в качестве аргументов скрытые элементы данных, объявленные в заголовочном файле(интерфейсе)
- Указание в конструкторе при инициализации функций тип аргумента
- Указание возвращаемого типа в конструкторе при инициализации функции
- Отсутствие возвращаемого типа перед функцией в интерфейсе — компилятор должен знать какой типа возвращает функция до её реализации
- Отсутствует ";"(точка с запятой) в конце определения класса в интерфейсе /ul
— Незабудька: ul
- Во вложенных оператораъ if..else сначала проверять наиболее распространённые случаи, это способствует более быстрой отработке внутренних if..else стр.210
- Число повторений - число интераций цикла
- Переменные для хранения сумм перед их использованием инициализируются нулём
-
В .h файлах содержатся прототипы функций — Организация исходников C++ (https://toster.ru/q/12136) — * показать/спрятать
Для себя сделал такую структуру (часто использую в проектах если больше 3 тысяч строк)
- Всё лежит в одном месте
- C/CPP файлы содержат код, а в заголовке содержат include «header.h»
- все H файлы содержат прототипы функций, константы и структуры, которые относятся в C/CPP файлу.
- в файле header.h прописываются все заголовочные файлы (сначала системные, потом свои)
Таким образом очень легко править всё что связано с одним файлом кода (H и CPP файлы имеют одно имя, ток расширение разное). При добавлении нового модуля, нет необходимости прописывать его заголовочный файл в каждом исходнике где он используется, достаточно прописать только в header.h
И к тому же такой подход позволяет легко обходить ситуации с взаимный include (первый на второго, а второй на первый)
* Class.h - интерфейс; Class.cpp - реализация; main.cpp - код клиента
/ul