[英]Incomplete type in c++
我已经在c ++中声明了DynArray var_name,但是在编译它时给了我一个错误“不允许的不完整类型”我尝试搜索但没有提出动态数组的例子。 有人可以解释一下这个错误吗? 谢谢。
如果你要定义一个成员变量x
到您的类C
在头文件Ch
,你必须包括类的头X
( Xh
)的Ch
。 但是,如果你只是存储一个指向X
的指针作为C
的成员,那么你可以转发声明class X;
在宣布class C{...};
然后在定义文件C.cpp
,如果访问x
任何成员,则必须包含Xh
。
“不允许不完整的类型”通常意味着已经声明了一个类,但是在需要完整定义的点上没有定义它。
这有时会因为标题中的循环依赖性而发生,
A类的定义取决于B类的定义,反之亦然 - 导致Ah包含Bh,然后Bh尝试包含Ah但不能因为标题保护已经定义,所以它跳过了,但后来只得到了一个fwd decl一种。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.