求教,类的问题

九师弟 2014-05-25 02:57:24
程序代码中,某个类中的一个函数的参数是另一个类的指针,然后在这个函数中通过这个指针调用另一个类中的函数。编译就通不过,error:involid use of incomplete type ‘XXX’,我的类的定义和实现还有main函数是在一起的,求帮助,解决办法和错误的原因,谢谢。


我在百度上搜索过类似的问题,找到一个感觉和我情况类似的答案,但看不懂,在这贴出,提供个思路:
gcc中,在引用某个已经实现的类时:如果只是定义某个类的指针,可以使用class关键字先进行声明,而不需包含头文件;但如果涉及到定义某个类的对象或是引用类的某个具体成员时,则必须包含该类的头文件,并且不要加class关键字进行声明。否则,将会出现标题所示编译错误!
...全文
75 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
九师弟 2014-05-25
  • 打赏
  • 举报
回复
可是如果我把class A;删除,编译也通不过,error:'XXX' has not been declared.
TheNewIpad 2014-05-25
  • 打赏
  • 举报
回复
楼主是不是 两个类之间相互引用, 为解决这个问题,使用了 前向声明。 class A; class B { func (A* pA){....} } 取消该前向声明, 就可以啦。 楼主将两个定义放在一起,或者修改引用的头文件,应该可以解决你的问题。

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧