前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[Error] invalid use of incomplete type 使用了未定义的类型

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

作者头像
叶茂林
发布2023-07-30 10:29:03
4050
发布2023-07-30 10:29:03
举报
文章被收录于专栏:叶子的开发者社区

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

之后编译报错:

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

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

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

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

于是找到一个解决办法:

类定义和类实现分离。

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

搞定了。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-06-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档