Вопрос Зачем нужны файлы заголовков ?

Эксперт
Статус
Оффлайн
Регистрация
9 Апр 2020
Сообщения
1,442
Реакции[?]
671
Поинты[?]
30K
У меня есть основной код программы, и я создал модуль без заголовка, сразу .cpp и вызываю напрямую функцию из основного когда, в каких случаях мне за такие действия прилетит по ебалу ?
 
Пользователь
Статус
Оффлайн
Регистрация
11 Июн 2020
Сообщения
177
Реакции[?]
82
Поинты[?]
0
Файлы заголовков нужны для деления программы на модули, т.е. если ты хочешь переместить функцию func1 из main.cpp в functions.cpp то тебе нужно создать хедер functions.h и вписать туда тип возвращаемого значения, название функции, и аргументы которые она принимает. Дальше просто делаешь инклюд в main.cpp и вызываешь ее где нужно.
 
money++
Разработчик
Статус
Оффлайн
Регистрация
14 Июн 2018
Сообщения
638
Реакции[?]
339
Поинты[?]
22K
У меня есть основной код программы, и я создал модуль без заголовка, сразу .cpp и вызываю напрямую функцию из основного когда, в каких случаях мне за такие действия прилетит по ебалу ?
  • Ты можешь получить ошибки вида multiple definition при компиляции
  • Если ты будешь менять что-то внутри реализации какой-то функции то перекомпилируется не только .срр файл с изменениями, но и все файлы, где эта функция вызывается
  • IDE к такому обычно не готовы и твой комфорт пострадает
Так что используй .h файлы (если что ты можешь писать реализацию функции напрямую в .h файле и все будет ОК)
 
Забаненный
Статус
Оффлайн
Регистрация
18 Окт 2019
Сообщения
812
Реакции[?]
152
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
money++
Разработчик
Статус
Оффлайн
Регистрация
14 Июн 2018
Сообщения
638
Реакции[?]
339
Поинты[?]
22K
естественно оно не будет работать с прагма once....................
К сожалению люди на этом форуме слишком часто думают что multiple includes и multiple definitions это одно и тоже, так что я таким лаконичным ответом ограничиться не мог(
 
Пользователь
Статус
Оффлайн
Регистрация
11 Июн 2020
Сообщения
177
Реакции[?]
82
Поинты[?]
0
Посмотреть вложение 163372
С дефайн гуардом тоже не работает. Сначала проверь - потом пиши
Мне кажется что мы говорим про совсем разные вещи.....
sn0wyQ , если что, я писал именно про хедер файлы, а не про цпп
и юзать их нужно, я же не ?

а так, твое соо полностью верно, я просто его не дочитал
 
Последнее редактирование:
Сверху Снизу