Существует ли стандарт для создания проектов C ++, который используется на рабочем месте, или каждый проект создается субъективно?
Нет, вы можете найти разные структуры в разных проектах.
Если стандарта не существует, есть ли какие-либо плохие практики, которых следует избегать при создании структуры папок?
Вам следует:
- Поставитьскомпилированные файлы в другой папке (может быть, в bin).
- Организуйте свой проект в разных логических модулях, размещенных в разных папках.
- Используйте корневую папку для файлов без кода (makefile, gitignore и т. д.)...).
- Используйте только строчные имена, чтобы избежать глупых ошибок.
Не следует:
- Использовать абсолютные пути.
Могу ли я создать структуру папок, в которой все файлы заголовков (.h) помещаются в один каталог, а все исходные файлы (.cpp) - в другой каталог, например C: \ headers \ header.hи C: \ source \ main.cpp в моем включениииспользуйте #define HEADER "/ path to header" и затем каким-то образом #include HEADER "aheader.h", что будет означать, что мне не нужно каждый раз, когда включается заголовок, записывать путь к каталогу заголовков и вместо этого писать HEADER перед включением?
Нет, это действительно плохо.
Мне не нравится использовать разные папки для файлов с исходным кодом / заголовками, но если вы хотите.Вы можете обойти, используя include-пути (флаг -l).
Поэтому вы должны использовать:
#include <header.h>
#include <anotherheader.h>
Это работает, потому что вы включаете папку во время компиляции:
g++ -l "../headers" enemy.cpp
Любая разумная IDE сделает это за вас.Или вы можете сделать это в вашем make-файле, в зависимости от того, что вам подходит.