1. Рекомендуется отделять каждый класс от основного кода с помощью заголовки и источники . А как насчет функций? Скажем, у меня есть функцию, которую я хотел бы использовать в нескольких классах, но не хотите включить эту функцию как метод класса.
  2. Если я решу создать отдельный файл для этой функции (ей), должен ли я помещать все в .h или мне следует поступить так же, как с классами (отдельные .h и .cpp )?
0
Sergey Musiyenko 5 Янв 2018 в 13:30

1 ответ

Лучший ответ

Да, независимо от того, является ли это классом или нет, по-прежнему рекомендуется отделять объявление / подпись (в файле заголовка) от определения / реализации (в файле cpp).

Коду, который вызывает функцию, не нужно знать, как на самом деле работает функция - только то, как ее вызвать.

Такое разделение позволяет избежать циклических ссылок, которые иногда могут возникнуть в противном случае. Это позволяет избежать необходимости повторного синтаксического анализа определения компилятором при каждом включении объявления.

В основном причины разделения заголовка и cpp одинаковы для классовых и неклассовых функций.

Однако, если вы используете шаблоны, вам нужно будет включить определение, а не только объявление (как в случае с шаблонными классами).

Я бы посоветовал вам поместить функции в пространство имен, даже если вы не помещаете их в класс.

0
ROX 5 Янв 2018 в 13:15