赞
踩
今天在写奥特曼打大怪兽的时候,发现一个奇怪的问题,我定义了两个基类Ultraman和Monster,一个Monster的子类Boss,然后两个基类是有相互勾结的地方,它们都或多或少的使用了对方的类型进行定义自己,然后我在第一个类实现前面进行了另一个类的声明:
之后编译报错:
然后它说不能使用不完整的类类型:
我就开始犯迷糊了,明明我两个类定义的好好的,咋就说我没有定义呢。我也在前面声明了。
然后经过我和另一个大三的学长两个人两个小时的寻找,各种排查,终于意识到一个问题:
因为这两个类是相互勾结了,所以其中一个类在使用另一个类进行对象实例化的时候,另一个类也会去找这个类对象实例化,而它们都还没有定义,简单来说就是,我需要你帮我做一件事A,但是你为了做事A需要我做事B,而我做事B必须建立在你帮我做事A的前提下。
于是找到一个解决办法:
类定义和类实现分离。
类实现写在两个类定义之后。
搞定了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。