C++和C中自定义的头文件包含问题

近日在C++项目中遇到一个问题,大体是这样的:6个文件,分别是:Login.h,Login.cpp,List.h,List.cpp,Goods.h,Goods.cpp,因为其中三个.h文件是自定义的,分别对应相应的.cpp,我的Login.h中是所有的Login.cpp需要的函数的声明,然而在编译过程中,报错了,报错内容是Login.h中所有函数在此范围内全部未找到定义。

这事我就觉得很奇怪,之前程序还正常运行了,现在在Login.h中全部函数都报错,肯定不是我逻辑上的错误,然后就只能将矛头指向头文件包含,最后发现我的头文件包含是这样的:Login.h中包含了List.h,List.h包含了Goods.h,Goods.h包含了Login.h,这样形成了一个环,并且我再.h文件都写了这段:#ifndef ***   #define ***  #endif,从字面意思就能理解,如果没有被定义***,则定义***, 最后则结束定义,而我的错误也很明显了,一旦这种包含形成了一个环,则很明显其中肯定有.h不能被成功定义引用,解决此问题比较好的办法,我称之为:增量包含,就是一级级的包含,.h内容一级级的增加,如果实在无法避免,则可以在.cpp中引用需要的.h文件。

你可能感兴趣的:(c语言,C++,C,头文件包含)