Как говорится в вопросе, я программист на C# / Java, который заинтересован в (пере) изучении C++. Как вы знаете, C# / Java имеют довольно строгую файловую структуру проекта (особенно Java). Я считаю эту структуру очень полезной, и мне было интересно, а) хорошая ли практика для создания аналогичной структуры на C++, б) если да, то как лучше всего ее настроить?
я знаю, что есть основные папки «заголовки» и «исходники», но есть ли способ лучше?





Я считаю, что структура java-проектов довольно хороша. Я так делаю (root - это корневой каталог)
корень / включить / foo / bar / baz.hpp становится
namespace foo {
namespace bar {
// declare/define the stuff (classes, functions) here
} } // foo::bar
в коде.
Я храню источник в
корень / SRC / foo / бар / baz.cpp. Если у меня есть какие-то вещи, которые не видны извне, я помещаю их в каталог и пространство имен деталь /. Я храню файлы сборки по адресу корень/.
a) (is it) good practice to do a similar structure in a C++,
Один из способов узнать это - загрузить несколько проектов с открытым исходным кодом и посмотреть их файловую структуру.
По моему опыту, используемый инструмент сборки в конечном итоге диктует файловую структуру. Если иметь много подкаталогов с выбранным инструментом сборки немного затруднительно, то у вас не будет много подкаталогов.
b) if so, what is the best way to set it up?
Это зависит от вашей среды сборки / разработки. Лично я использую файловые инструменты vim и Linux, поэтому настраиваю все вручную. У кого-то, кто использует Eclipse или Visual Studio, вероятно, есть несколько мастеров, с которыми можно работать.
Visual Studio сделает все за вас, никакой работы не требуется. Но я думаю, вы застряли в том, что видите.