gpt4 book ai didi

c++通过复杂的依赖关系获得正确的前向声明

转载 作者:太空狗 更新时间:2023-10-29 23:12:35 25 4
gpt4 key购买 nike

<分区>

问题

我收到以下编译错误:

error: member access into incomplete type 'IRB'

这发生在使用 class IRB 的第一行,位于 HG.h

问题

  • 我在这里缺少什么?是导致问题的 typedef 吗?

  • 在每个头文件中,正如您在下面看到的,我转发声明了我将要使用的类。

  • 更重要的是,我应该遵循什么样的流程才能做到这一点?

头文件

T.h

typedef IRBBase__<true, true> IRB_BASE;  // typedef a template instantiation

IRB.h

#include "T.h"
#include "FH.h"
class FH; // FWD DCLR
class IRB : IRB_BASE {..};

FH.h

#include "T.h"
#include "IRB.h"
#include "HG.h"
class IRB; // FWD DCLR
class HG; // FWD DCLR
class FH {..};

HG.h

#include "T.h"
#include "FH.h"
#include "IRB.h"
#include "CU.h"
class FH; // FWD DCLR
class IRB; // FWD DCLR
class CU; // FWD DCLR
class HG {..};

CU.h

#include "T.h"
#include "IRB.h"
#include "FH.h"
class IRB;
class FH;
class CU {..};

编辑:开始工作

user0042 建议后,我通过将除 HG.h 之外的所有文件的 header 移动到它们各自的 .cc 文件中来使其工作。在 HG.h 中,我保留了前向声明和头文件。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com