zl程序教程

您现在的位置是:首页 >  其他

当前栏目

hpp文件互相引用导致编译失败

2023-03-15 23:24:00 时间

写代码的时候写了两个互相引用的HPP文件。

之所以写成HPP文件是为了方便,毕竟代码量都不大,觉得弄成.h和.cpp两个文件比较麻烦,但是却带来了意想不到的其他麻烦。

因为功能需要,两个.hpp文件需要互相调用,因此也需要互相#include,但由于只有一个hpp文件,所以就是直接include的互相。

也就是A.hpp引用B.hpp,B.hpp也引用A.hpp。

但是编译时会出现在B.hpp对A类的调用时,显示A类未声明。明明是引用了的。试了很久发现,应该是互相include导致循环引用产生的问题。

解决方案是将B.hpp拆成B.h和B.cpp两个文件。A.hpp引用B.h,在B.cpp的实现代码中,才去引用A.hpp,因为实现代码中才需要调用A类。

这样拆分后,编译也就通过了,还是得注意细节哇。