C++ C++;包含结构
我想知道在包含头文件时应该遵循什么标准。如果相关位置使用头文件,则在这些位置重新包含头文件是否是一种良好的做法? 比如说, 假设您有一个main.cpp类,其中包括iostream和一个自定义类“myclass.h”,因为您在main中同时使用std::ostream和myclass的实例 现在,在“myclass.h”中还包括iostream,因为在类中使用std::ostream 现在回顾一下,main在技术上包括iostream两次,因为它本身就包含iostream,而且它也包含在“myclass”中(main包括iostream)。 我可以想出一个好的理由,一个坏的理由,我想知道这是正确的做法C++ C++;包含结构,c++,include,standards,guard,C++,Include,Standards,Guard,我想知道在包含头文件时应该遵循什么标准。如果相关位置使用头文件,则在这些位置重新包含头文件是否是一种良好的做法? 比如说, 假设您有一个main.cpp类,其中包括iostream和一个自定义类“myclass.h”,因为您在main中同时使用std::ostream和myclass的实例 现在,在“myclass.h”中还包括iostream,因为在类中使用std::ostream 现在回顾一下,main在技术上包括iostream两次,因为它本身就包含iostream,而且它也包含在“myc
-Francisco在两个文件中保留include,并让include守卫完成他们的工作
如果您依赖于“间接”包含,那么如果您以后更改“myclass.h”并想知道为什么std::ostream在main.cpp中不再工作,那么可能会出现错误。另外,它可能会让其他人感到困惑。一般来说,尽量减少头文件中包含的内容的数量是一种好的做法。每个include将包含的文件与包含的文件进行耦合。在使用iostream的情况下,这并不是世界末日,因为iostream不会经常更改。您应该研究pImpl习惯用法,它有助于将接口与其实现分离。如果必须在标头中包含文件,请使标头自给自足。不要要求类的用户知道每个类都需要哪些包含 实际上,在任何大型项目中,您都会有一些间接的包含,但您仍然应该尝试。。。