Код в заголовочных файлах (.h
или .hpp
в C++) не размещают по следующим причинам:
Нарушение принципа одного определения (One Definition Rule - ODR). При включении заголовочного файла несколькими .cpp
файлами, содержащийся в нем исполняемый код будет определен более одного раза, что приведет к ошибке линковки (multiple definition). Исключение – inline
функции и шаблоны классов/функций, которые должны быть определены в каждом модуле трансляции, где они используются.
cpp
Увеличение времени компиляции. При каждом включении заголовочного файла, компилятор заново обрабатывает его содержимое. Размещение кода в заг
Код в заголовочных файлах (.h
или .hpp
в C++) не размещают по следующим причинам:
Нарушение принципа одного определения (One Definition Rule - ODR). При включении заголовочного файла несколькими .cpp
файлами, содержащийся в нем исполняемый код будет определен более одного раза, что приведет к ошибке линковки (multiple definition). Исключение – inline
функции и шаблоны классов/функций, которые должны быть определены в каждом модуле трансляции, где они используются.
cpp
Увеличение времени компиляции. При каждом включении заголовочного файла, компилятор заново обрабатывает его содержимое. Размещение кода в заг
Register or sign in to get access to full answers for all questions from the question bank.