问题描述
我已成功为此类管理的类之一内联函数,如下所示:
static bool filterInfected( Person* p ) { return p->isInfected(); }
但是
static int accumulateInfected( GroupHeader* groupHeader ) { return groupHeader->getNumInfected(); }
我收到编译器错误“成员访问不完整类型‘GroupHeader’”
与上面的 Person* 一样,GroupHeader 的头文件包含在此类 .hpp 文件中
如果我将函数体从 heder 文件中移到 .cpp 源文件中,一切正常,但我有许多单行访问函数,我想要内联以消除实现文件中的混乱。
我们将不胜感激,如果您需要更多信息,请随时询问。
期待中的感谢
特里
解决方法
已修复,将 GroupHeader 的头文件直接包含在 GroupMaster 的头文件中。这最初不起作用,因为 GroupHeader.hpp 文件包含 GroupMaster.hpp 文件(某个时候一定有充分的理由!)从 GroupHeader.hpp 文件中删除此标题修复了我的问题并且没有破坏任何东西否则。
自我注意:检查并重新检查所有标题包含;它们真的有必要吗,还是前向类声明就足够了?
感谢所有回答我最初问题的人。