Делаю "игру". Создал уже 6 .h-файлов с классами, функциями etc. А cpp всего один - main.cpp, и в него весь этот изврат подключается.
Но во многих проектах все это дело лежит в .cpp
Как правильно подключить .cpp-файл и в чем разница между .h и .cpp?
И какие могут быть подводные камни?)
Другие языки программирования и технологии
[C++] Добавление .cpp-файлов в проект
это все называется проектированием. и делают так потому что это удобно.
например, если хранить в хидерах только объявления, то всего пары секунд будет достаточно для того, чтобы понять, что данный класс умеет делать.
например, если хранить в хидерах только объявления, то всего пары секунд будет достаточно для того, чтобы понять, что данный класс умеет делать.
Вадим Петров
А вес файла от этих "отдельных объявлений" и прототипов не увеличится?
Ну вот пишешь ты программу на Си в которой нужно использовать математические функции.
Приходится подключать заголовочный файл math.h, в котором собраны прототипы всех математических функций.
Если функция без прототипа, то она будет видна из кода только в том случае, если определена выше.
Нашли способ, указывать выше только прототип функции, её объявление, а саму функцию, в этом случае, определяют в любом месте программы.
Прототип, указывают в заголовочном файле, который потом подключается директивой includ вверху исходного кода.
После этого все функции, прототипы которых указаны в заголовочном файле, становятся доступными для использования.
Сами же функции реализованы, каждая в своём c-файле.
Точно также и в С++ каждому классу свой отдельный cpp-файл.
Такая архитектура позволяет решать много задач, часть из которых упомянута выше.
Главная из которых, чем короче код, тем меньше в нём ошибок.
Приходится подключать заголовочный файл math.h, в котором собраны прототипы всех математических функций.
Если функция без прототипа, то она будет видна из кода только в том случае, если определена выше.
Нашли способ, указывать выше только прототип функции, её объявление, а саму функцию, в этом случае, определяют в любом месте программы.
Прототип, указывают в заголовочном файле, который потом подключается директивой includ вверху исходного кода.
После этого все функции, прототипы которых указаны в заголовочном файле, становятся доступными для использования.
Сами же функции реализованы, каждая в своём c-файле.
Точно также и в С++ каждому классу свой отдельный cpp-файл.
Такая архитектура позволяет решать много задач, часть из которых упомянута выше.
Главная из которых, чем короче код, тем меньше в нём ошибок.
cpp компилируется и если все держать в одном файле, то придется все каждый раз заново компилить, что для огромных проектов займет много времени
Прототип функции надо тогда, когда просто требуется описать функцию которая еще не известна и будет где-то определена ниже или когда вообще будет определена в другом модуле. Да и по прототипу компилятор понимает какую функцию подставить, так как имя может быть одинаковым, но по типам можно понять конкретно какая функция нужна
Прототип функции надо тогда, когда просто требуется описать функцию которая еще не известна и будет где-то определена ниже или когда вообще будет определена в другом модуле. Да и по прототипу компилятор понимает какую функцию подставить, так как имя может быть одинаковым, но по типам можно понять конкретно какая функция нужна
Как можно писать код для игры, знать как его писать.... но при этом не знать такую херню о том, что h это заголовочный файл? (Просто интересно) Ты можешь все функции объявить и в main, но в заголовочном файле они объявляются просто ради удобства.... просто видно так лучше.... ориентироваться проще. Можно вообще для каждой функции создать отдельный cpp файл и назвать его именем функции, которую создашь в этом cpp файле. Но чтобы main знал что этот файл есть надо создать заголовочный файл, в котором объявить эту функцию, создав её прототип. Прототип функции - это объявление функции.... обычно мы пишем функцию сразу со всем её содержимым - это объявление и определение одновременно ...но если просто только объявить, то она будет пустой, без тела (содержимое в фигурных скобках) ...к примеру int add(int, int )
Похожие вопросы
- С/C++ работа с файлами, удаление и вывод на экран заранее не известных файлов
- Программирование на C++.Работа с файлами.
- с++ Для чего в программировании используют несколько файлов cpp? ну замечал в проектах, помимо main есть еще сpp файлы
- Dev cpp при попытке компиляции и запуска выдает ошибку - исходный файл не был скомпилирован.
- Не могу понять в чем дело Выдает вот эту ошибку: C:\Program Files (x86)\Dev-Cpp\Lang\collect2.exe[Error] ld returned 1 e
- Как в этом коде C++ в файл через каждые две буквы добавить цифру любую? За ранее огромное спасибо
- Где лучше (безопаснее) хранить файлы на D или на C ?
- Visual Studio C++, ошибка : "не удается найти указанный файл"
- Ошибки открытия файла C++
- C++ Файлы. помогите чем можете . за хороший ответ подарю денюжку