我需要使用A.h中定义的结构作为方法的参数以及B.h中另一个结构的数据元素。 (我不能在StructB中使用指向StructA的指针,因为它指向的数据最终会发生变化,我需要在StructB中的本地副本中保留原始数据。)
A.H:
struct StructA {
...
}
B.h
#include "A.h"
struct StructA;
class B {
method foo (StructA &structA);
struct StructB {
...
StructA structA
}
通过在A.h中包含A.h,是否在B.h中提供了StructA的声明?但是,编译器抱怨"字段structA的类型不完整"。
如果我没有向前声明StructA,则编译器会抱怨StructA未在方法foo中声明。所以,很明显,声明在B.h。
中不可用我在这里遗漏了一些基本的东西,但我无法弄清楚它是否让我疯狂!请帮忙!
答案 0 :(得分:0)
#include "A.h"
确实为B.h
提供了完整的类型,然而我的猜测是你有一个循环包含,这就是为什么它不起作用。 A.h
是否包含B.h
(直接与否)?