C ++ — нужен совет, как правильно спроектировать многофайловую программу

Хорошо, в основном мне нужно создать простую игру, используя Allegro 5 и C ++. Я хочу разделить его на отдельные модули, чтобы им было легче управлять. Мой вопрос: как правильно управлять «перемещением» между разными файлами? В частности, я хотел бы иметь файл с именем Menu.cpp, который был бы основным файлом, а затем, в зависимости от того, что выбирает пользователь, он выполняет действия, указанные в других файлах, таких как Singleplayer.cpp или Options.cpp (это даже хороший подход?). Моя идея — сделать это так:

 //Menu.cpp # include "Singleplayer.h" int main () {int parameter; if (user_selects_singleplayer) singleplayer (parameter  ); return 0;}//Singleplayer.cppvoid singleplayer (параметр int) {... handle_singleplayer ...}//Singleplayer.h # ifndef SINGLEPLAYER_H # define SINGLEPLAYER_H//или, может быть, #pragma once? void singleplayer (int parameter)  ; #endif  

Я хотел бы знать, правильный ли это способ сделать это, и если да, нужна ли мне функция main () в Singleplayer.cpp (и как изменить файл, чтобы он работал) и если мне нужно включить Singleplayer.h в Singleplayer.cpp.

В моем примере я пропустил некоторые вещи, такие как включение библиотек allegro, инициализация большего количества переменных и т. д. чтобы сделать общую идею понятнее. Также я хотел бы отметить, что я не могу использовать классы и потоки (я знаю, что это глупо, но это требование, поскольку этот проект является домашним заданием для класса программирования).

EDIT: вопрос, связанный с @Leiaz, актуален, и ответы на него, безусловно, помогают понять, как работают заголовки, но мой вопрос был больше о правильных подходах к дизайну. В любом случае, спасибо за ответы, я обязательно прочитаю эту тему.


Вот несколько правил, которые должны работать в большинстве ситуаций:

  • Каждый файл cpp имеет h-файл, который включен в cpp.

    main.cpp включает main.h , Singleplayer.cpp включает Singleplayer.h

  • определения классов и прототипы функций находятся в файле заголовка, реализация находится в файле cpp

    h: int add (int x, int y); cpp: int add (int x, int y) {вернуть x + y; }

  • Включать только файлы заголовков, никогда не включать файлы cpp

    позволяет избежать множественных проблем с определением, поскольку заголовки содержат код охранники (ваши определения) и cpp не имеют

  • Включайте только те файлы, которые вам действительно нужны для сокращения времени компиляции

    Не создавайте all.h , включающий каждый заголовок, который у вас есть.

  • Если возможно, включите файлы h в файлы cpp. Включайте его только в шапку, если он там нужен.

    Сокращает время компиляции и избегает циклических ссылок

Вам следует провести небольшое исследование о том, как правильно спроектировать проект C ++, чтобы понять принципы за этим.



Альянс бесплатных файлов

Теперь бесплатный файл открыт!

Нажмите здесь, чтобы начать подготовку налоговой декларации за 2020 год

Если вы не получили полную выплату за экономический ущерб, вы можете иметь право потребовать возвратный кредит на восстановление, используя бесплатный файл

Если вы не получили никаких платежей или получили меньше полной суммы, вы можете претендовать на получение кредита, даже если вы обычно не подаете налоговую декларацию. Посетите веб-сайт IRS: возврат бонуса за восстановление для получения дополнительной информации.
НАЧАТЬ

Free File Alliance — это некоммерческая коалиция ведущих в отрасли компаний, занимающихся разработкой налогового программного обеспечения, которые в партнерстве с IRS помогают миллионам американцев подготовиться и бесплатно подавать свои федеральные налоговые декларации. Free File — это быстрый, безопасный и бесплатный способ подать федеральную налоговую декларацию онлайн. Компании-члены Free File Alliance бесплатно предоставляют фирменное программное обеспечение для налогообложения.

Free File обслуживает 100 миллионов американских налогоплательщиков.

ФАЙЛ ПРЯМО СЕЙЧАС
Более 60 миллионов
возвратов были поданы через программу Free File с тех пор, как она началось в 2003 году.
70% американских налогоплательщиков
(около 100 миллионов человек) могут получить бесплатный файл.
98% пользователей
рекомендовали бы программу другим (опрос 2020 г.).
ПОДРОБНЕЕ
Оцените статью
clickpad.ru
Добавить комментарий