将所有typedef和forward声明放在一个中型项目的头文件中是否合理

时间:2015-05-13 09:18:24

标签: c++ header include

关于#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){ ... };
}

0 个答案:

没有答案