我有一个类Foo与相应的.h和.cpp。这两个文件都使用std :: string。我应该只在标题中包含#include <string>
还是将它包含在两个文件中?在类头和实现中包含头文件?
3
A
回答
6
如果标头可以脱离前向声明,那么我总是在标头中使用它,并在实现文件中使用#include。 (FD可以用作参考和指针类型)。
如果他们都需要它,那么我倾向于将它们放在两个位置,这样如果标题被更改,我可以将它从.h中删除。
0
如果你可以更好地使用前向声明,因为你避免了多重包含,循环包含等。 所以当你可以使用一个指针时,把一个前向声明然后包含在所有其他文件中.cpp 你不得不直接包含在.h中(当你不使用指针或引用时,以及从类中派生时)
2
我将<string>
包含到预编译头中,因为我不打算经常更改它:) 。主要规则是:所有我不会经常更改的头文件都包含在预编译头文件中:STD,系统头文件,稳定的第三方库等(“经常”取决于项目大小,如果项目很大,“往往”倾向于“决不”)。
其他标题我投票了@111111's answer
相关问题
- 1. 在C++中包含头文件(类定义和方法实现)
- 2. 在其他头文件中包含头文件中的类
- 3. C++头文件和实现文件:包含什么?
- 4. 包含在头文件中
- 5. 包含在头文件中
- 6. 在附加头文件中包含头文件包括路径
- 7. 包含头文件
- 8. 在头文件中包含模板实现cpp文件和链接混淆
- 9. 当没有实现文件时包含头文件?
- 10. 在另一个头文件中包含头文件
- 11. 头文件中的类方法实现
- 12. 当包含不同的头文件时,C实现是否可以隐式地包含标准头文件?
- 13. 类头+实现
- 14. 如何在头文件中包含依赖项而不将其包含在包含头文件的项目中
- 15. 关键字包含在头文件vs源/实现文件中的C++“规则”
- 16. 包含头文件两次
- 17. C++头文件包含
- 18. 不能包含头文件?
- 19. C++头文件包含
- 20. C++包含头文件
- 21. 不能包含头文件
- 22. 如何包含头文件
- 23. 头文件包含路径
- 24. xcode包含的头文件
- 25. C++包含头文件
- 26. 包含Linux头文件
- 27. 头文件包含Quesiton
- 28. 在头文件名中包含句号
- 29. 在VS2005中包含头文件
- 30. 在C++中包含头文件
感谢您的补充。对此,我真的非常感激。 – flumpb 2012-03-02 14:51:51