Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Файлы .h и .cpp. в C++

SnR6 Ученик (176), на голосовании 3 года назад
Почему в проектах обычно подключают 2 файла .h и .cpp. В первом пишут все объявления а во втором реализацию. Почему нельзя все писать сразу в .h? Я проверял, все корректно работает и без .cpp.
Голосование за лучший ответ
⭐Человек с Земли Оракул (71966) 3 года назад
Разделяют код и заголовки для удобства.
Когда проект большой, очень сложно разобраться в каше кода, поэтому разделяют для удобства.
kaiu Высший разум (120238) 3 года назад
h - заголовочные файлы, то бишь файлы объявлений, что мол будем использовать
cpp - уже конкретная реализация функции, что внутри.
Простой пример в виде 1 файла:
данные h
данные cpp
main
// в таком виде вроде не важно, можно все в h или все в cpp или вообще даже не в файлы а тут все в одном и даже убрать h. А когда же надо?
данные h
main
данные cpp
// нам же не важно знать реализацию того, что под капотом, главное как управлять, а это описано только в h файлах, а описание всех этих функций где-то внизу можно
Снова спросите, а почему бы не делать как вверху избавившись вообще от h? А потому, что без объявления невозможно сделать как вверху когда две функции ссылаются друг на друга
A { B() } B { A() } - для этого и нужно объявить, что функция B существует
ОК, согласились, что надо надо писать так
данные h
данные cpp
main
или так
данные h
main
данные cpp

Но зачем надо файлы?
Затем, чтобы заново не компилировать весь этот код, хотя по сути все можно было бы засунуть в 1 файл.
Разбитие на файлы, а значит модули позволяет разделить работу на несколько отделов, когда разным разработчиком не важно, что там внутри, когда они знают, что надо обратится вот так-то к функции или классу и получишь то, что надо.
Похожие вопросы