头文件包含的两点原则

两点原则

第一个原则

如果可以不包含头文件,那就不要包含了,这时候前置声明可以解决问题。如果使用的仅仅是一个类的指针,没有使用这个类的具体对象(非指针),也没有访问到类的具体成员,那么前置声明就可以了。因为指针这一数据类型的大小是特定的,编译器可以获知。

第二个原则

尽量在CPP文件中包含头文件,而非在头文件中。假设类A的一个成员是是一个指向类B的指针,在类A的头文件中使用类B的前置声明即可。如果在A的实现中(.cpp)我们需要访问B的具体成员,因此需要包含头文件,那么我们应该在类A的实现部分(CPP文件)包含类B的头文件而非声明部分(H 文件)。同理,命名空间的声明也应该尽量放在CPP文件中

 参考文章:

头文件互相包含与error C2146: 语法错误 : 缺少“;”的问题


猜你喜欢

转载自blog.csdn.net/u010275850/article/details/78167472