我有一个名为EventArgs
的基类。从中衍生出许多很多专门化,它们代表特定类型事件的事件参数。这些事件的消费者可能需要这些参数类中的一些,许多或极少数。
我的问题是,您是否会为每个类型提供一个头文件(例如,针对不同类型的50多个头文件),您是否会尝试将它们分组到系列中并且具有“共同” '那些头文件,或者你会谨慎对待窗口并将它们放入一个易于使用的头文件中,只能包含它?
另一种方法可能是拥有50个头文件,然后我可以引入一些包含特定文件的“家庭”头文件。不确定这些事情的命名约定,因此显而易见的是什么。
我知道可能没有严格的规则,但想知道其他开发人员在发现自己写了很多小班时所做的事情。
提前致谢。
答案 0 :(得分:3)
在以下某种情况下,我必须将两个类放入单独的标题中:
否则,将它们分开是没有多大意义的。我知道有些人有这个“每个标题一类”的规则,但在你的情况下看起来并不合理。
什么是“家庭”,包括大量小文件,在某些构建系统(和文件系统)中,这可能会对编译时间产生影响,并且在任何情况下我都没有看到这样做的一点 - 通常人们会使用文档或IDE来查找类,而不是查看头文件名。所以你只会这样做以简化包含,但为什么不把它们放在同一个标题中。
答案 1 :(得分:1)
我会根据用户可能想要一起使用的类将它们分组。在任何情况下,50多个微小的头文件似乎都过多了。
答案 2 :(得分:0)
所有变体都不是模板吗?
答案 3 :(得分:0)
我一直处于类似的情况,我正在开发GUI库。最初所有组件(它们都是小类)共享相同的头文件和源文件。这非常有效。我后来试图将它们放在单独的文件中,但它确实没有改进任何东西。它只增加了花费大量时间搜索这些文件的负担。
除此之外,也许你可以从Poco C ++库中汲取灵感。这个库通常遵循每个标题惯用法的一个类,但也有例外。例如,整个异常层次结构使用基于宏的系统在一个头文件和源文件上编码(请参阅Exception.h和Exception.cpp)。
答案 4 :(得分:0)
如果它们属于同一继承层次结构,则将它们放在同一个.h文件中。它可以帮助您确定类的正确顺序。其中一个鲜为人知的c ++编译时检查依赖于.h文件中类的正确顺序。