当前位置:   article > 正文

[Error] invalid use of incomplete type 使用了未定义的类型

invalid use of incomplete type

今天在写奥特曼打大怪兽的时候,发现一个奇怪的问题,我定义了两个基类Ultraman和Monster,一个Monster的子类Boss,然后两个基类是有相互勾结的地方,它们都或多或少的使用了对方的类型进行定义自己,然后我在第一个类实现前面进行了另一个类的声明:

之后编译报错:

然后它说不能使用不完整的类类型:

我就开始犯迷糊了,明明我两个类定义的好好的,咋就说我没有定义呢。我也在前面声明了。

然后经过我和另一个大三的学长两个人两个小时的寻找,各种排查,终于意识到一个问题:

因为这两个类是相互勾结了,所以其中一个类在使用另一个类进行对象实例化的时候,另一个类也会去找这个类对象实例化,而它们都还没有定义,简单来说就是,我需要你帮我做一件事A,但是你为了做事A需要我做事B,而我做事B必须建立在你帮我做事A的前提下。

于是找到一个解决办法:

类定义和类实现分离。

类实现写在两个类定义之后。

搞定了。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/121167
推荐阅读
相关标签
  

闽ICP备14008679号