具有多个继承级别的大型C++项目的文件/文件夹布局

adv*_*ait 4 c c++ inheritance

我正处于一个相对较大(10k +行)项目的规划阶段,该项目有几个类(30+)和几个级别的类继承(5+).

在文件和文件夹结构方面布置项目的最佳(或最常规)方法是什么?

  1. 我应该每班有一个档案吗?每个继承分支应该有一个文件夹吗?
  2. 我应该有一个包含我的头文件的'include'文件夹,还是我的头文件应该与我的.cpp/.c文件位于同一个文件夹中?
  3. 我计划定期添加更多类(向继承树添加更多级别).在树的最低级别,实现可能相对不相关但仍覆盖相同的虚函数.这些不相关的实现是否应该位于同一个文件夹中?

谢谢,
Advait

Gia*_*nni 6

1)是的.在大多数情况下,每个类别一个文件是个好主意.除非你有一个非常简单的类或一组抽象接口,否则每个文件使用一个类.

2)尝试分开的东西.通常在一个大项目中,你会有一些特定于某些部分的代码,其他代码对很多部分都是通用的.那些使用非常有限的,只需保持"本地".其他,放在包括dirs.

3)不需要真的.通常最好将密切相关的类(即文件)保持在一起; 我会尝试将它们保持在一起,除非你在全局包含中有类似通用接口的东西,并且在模块目录中有特定的继承.

  • 有关(2)的更多信息,请考虑按行为 - 模型/视图/控制器,接口,异常,测试,UDT等对文件夹进行分组. (3认同)