关于#include
有很多很好的讨论,但最后我没有找到具体问题的答案:
将所有类和所有typedef的声明提交到一个中型项目的头文件中是否合理?
所以我可以避免在每个标题的开头明确地制作前向定义,并且我会自动提供所有类型。
一些评论:我目前不使用命名空间,但这可能是下一步。中等大小意味着,它主要由一个人维护,最多有10000行代码/ 100个类。大多数类都是模板,只存在于头文件中。
然后可以看看结构:
types.h中:
class A;
template <class T> class B;
template <class T> class C;
typedef C<int> intC;
A.H:
#include "types.h"
class A{
public:
do_something(intC c);
}
B.h:
#include "types.h"
template <class T> class B{
public:
B(A* a, T val){ ... };
}