Думаю, нет общих правил (по крайней мере, я не слышал ни одного). Кажется, что у каждой компании есть свои практики и рекомендации. Думаю, вы можете полагаться только на себя и делать то, что соответствует вашим текущим потребностям.
Вот ссылка на Руководство по стилю Google C ++, если вы его еще не видели: https://google.github.io/styleguide/cppguide.html (у них много есть идеи, но я не принимаю некоторые из них, поэтому это вопрос выбора)
Вот еще одно случайное указание: http://geosoft.no/development/cppstyle.html
I Думаю, вы можете взглянуть на них, но нет общего практического правила. Все зависит от вашей конкретной задачи.
Для структуры каталогов / классов я предлагаю прочитать это
http://www.javapractices.com/topic/TopicAction.do?Id=205
Ссылка говорит о Java, но применима к любому языку (даже без ООП)
Вы также можете найти это интересным
Что вы можете сделать, так это найти проект с открытым исходным кодом в том же домене, изучить структуру их проекта и при необходимости адаптировать ее.
Большая часть проекты следуют единой иерархии следующим образом:
project
\_ conf\ --> configuration files (Unix/Linux projects might prefer an 'etc' folder)
\_ src\ --> main source (for C++ projects, headers and sources go along, but if
your project is a library then separating include files for others
is a better practice)
\_ src\module1\ --> for each sub module (for multiple files having related contents,
it is better to separate them to their own subfolders)
\_ doc\ --> documentation
\_ include\ --> (for library projects, the distributable include files)
\_ os\ --> OS (platform dependent) files (uch as makefiles, package building
scripts..)
\_ res\ --> resources required for compilation but not source files (icons, etc.)
\_ MAKEFILE --> makefile script for building the project
\_ README --> introductory document (might refer to doc\README)
\_ INSTALL --> Installation document (might refer to doc\INSTALL)