下列代码编译的时候会报错如标题

#include "iostream"class B;class A {public:
void func(B* para) {para -> B_func();
}
};class B {public:
void B_func() {std::cout << "sml" << std::endl;
}
};int main() {B* T1 = new B();
A* T2 =new A();
T2 -> func(T1);
}

修改方法如下:

#include "iostream"//classA中用到了classB的成员,所以classB要放到classA之前class B {public:void B_func() {std::cout << "sml" << std::endl;}};class A {public:void func(B* para) {para -> B_func();}};int main() {B* T1 = new B();A* T2 =new A();T2 -> func(T1);}

追问:

你说的对,但是现在我不想把B放到A之前。这个只是我举的例子,实际中的代码,A中有B,B中有A,所以在不调整A和B类的位置前提下 怎么解决上面的错误呀,谢谢你了!

追答:

因为classA的func函数使用了B的成员,所以必须在使用之前知道B的定义细节。
你可以把A的func延后实现(只在classA中定义func)。
具体代码如下:

class B;class A {public:void func(B* para);};class B {public:void B_func() {std::cout << "sml" << std::endl;}};void A::func(B* para) {para -> B_func();}int main() {B* T1 = new B();A* T2 =new A();T2 -> func(T1);}

invalid use of incomplete type ‘class B‘相关推荐

  1. error: invalid use of incomplete type 'XXXX' ;error: forward declaration of 'XXXX' 声明改为包含头文件

    error: invalid use of incomplete type 'XXXX' error: forward declaration of XXXX 声明改为包含头文件 class XXXX ...

  2. invalid use of incomplete type struct 或者是class的解决办法

    在写完代码之后进行编译时,提示"invalid use of incomplete type struct" 或者 "invalid use of incomplete ...

  3. Qt 错误提示1: invalid use of incomplete type ‘***‘

    错误提示: invalid use of incomplete type '***' 出现此类错误的原因一般都是没有使用类的头文件. 可以通过查询类的头文件,将其包含进来即可. 1.查询类的头文件 通 ...

  4. invalid use of incomplete type ‘class Ui ::Ccam_para_set‘的解决办法

    参考文章:在其他类中使用mainwindow主窗口的UI指针 在使用QT进行软件开发的时候,遇到invalid use of incomplete type 'class Ui ::Ccam_para ...

  5. QT错误1-error: invalid use of incomplete type ‘class xxx‘

    在qt开发当中,经常遇上这种错误. 这个错误翻译成中文是:"错误:无效使用不完整的类型"类xxx"" 那从编程语言本身是什么意思呢? 不完整的类型,真是非常让人 ...

  6. invalid use of incomplete type ‘class UI::MainWindow‘解决方法

    Qt窗口中点击了objectName但是没有修改,再点击别的位置,会自动把MainWindow第一个字母小写,导致上面的出错 改回大写就好了

  7. linux c++ 报错 invalid use of incomplete type 解决方法

    原因:编译器不知道所用的struct 或者是class的具体实现, 分析:通常出现在如下情况:假设我们有一个class some定义在some.h中,实现在some.cpp中,我们在other.cpp ...

  8. invalid use of incomplete type 报

           gcc中,在引用某个已经实现的类时:如果只是定义某个类的指针,可以使用class关键字先进行声明,而不需包含头文件:但如果涉及到定义某个类的对象或是引用类的某个具体成员时,则必须包含该类 ...

  9. error: invalid use of incomplete type 'struct word'|

    发生错误的程序: #include <stdio.h> #include <string.h> #include <algorithm> int cmp(const ...

最新文章

  1. 短短的 RESTful API 设计规范
  2. 学会动态丨中国人工智能学会重磅发布《2018人工智能产业创新评估白皮书》
  3. HibernateSessionFactory的用法
  4. 下面关于微型计算机控制技术的叙述,(微型计算机控制技术选择题.docx
  5. 【未来可能用到】关于模型的100个问答-part1
  6. 本月 上月 php,显示本月,上月,今天,今年以及各时间起点与
  7. 计算机网络学习笔记-1.1.5-分层结构、协议、接口、服务
  8. pwm调速流程图小车_PWM调速+循迹__智能小车程序
  9. 利用正则表达式限制网页表单里的文本框输入内容
  10. hashmap浅析-get方法
  11. mysql sql语法解析器_Druid SQL 解析器概览
  12. Error Code: 1054. Unknown column 'xxx' in 'field list'
  13. pg比mysql优势_postgresql比mysql有多少优势
  14. Win2012或Win2016安装网卡
  15. iphone解锁那点事 (一)
  16. singleTask vs singleInstance
  17. CSS 的布局 盒子
  18. DirectDraw基础篇(学东西还是基础的好哦!)
  19. 图像加权和制作鬼影---OpenCV-Python开发指南(2)
  20. Win7电脑系统录屏功能使用教程分享

热门文章

  1. 报名 | 清华大学海外学者短期讲学:数字经济创新创业课程
  2. 独家 | 使用Python的LDA主题建模(附链接)
  3. 独家 | 用pandas-profiling做出更好的探索性数据分析(附代码)
  4. 为了研究因果关系,原来科学家在这么多方向上都有尝试(附链接)
  5. 独家 | 菜鸟必备的循环神经网络指南(附链接)
  6. 收藏 | AI领域必看的45篇论文(附下载地址)
  7. 报名 | 搜狐×清华:第三届内容识别算法大赛,比武招新两不误!
  8. 读博难,大神来支招:DeepMind科学家Sebastian Ruder提出十条实用建议
  9. 世界上最伟大的10个公式,其中一个人尽皆知
  10. 超越EfficientNet!MutualNet:一种自适应相互学习网络宽度和分辨率的网络