invalid use of incomplete type ‘class B‘
下列代码编译的时候会报错如标题
#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‘相关推荐
- 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 ...
- invalid use of incomplete type struct 或者是class的解决办法
在写完代码之后进行编译时,提示"invalid use of incomplete type struct" 或者 "invalid use of incomplete ...
- Qt 错误提示1: invalid use of incomplete type ‘***‘
错误提示: invalid use of incomplete type '***' 出现此类错误的原因一般都是没有使用类的头文件. 可以通过查询类的头文件,将其包含进来即可. 1.查询类的头文件 通 ...
- invalid use of incomplete type ‘class Ui ::Ccam_para_set‘的解决办法
参考文章:在其他类中使用mainwindow主窗口的UI指针 在使用QT进行软件开发的时候,遇到invalid use of incomplete type 'class Ui ::Ccam_para ...
- QT错误1-error: invalid use of incomplete type ‘class xxx‘
在qt开发当中,经常遇上这种错误. 这个错误翻译成中文是:"错误:无效使用不完整的类型"类xxx"" 那从编程语言本身是什么意思呢? 不完整的类型,真是非常让人 ...
- invalid use of incomplete type ‘class UI::MainWindow‘解决方法
Qt窗口中点击了objectName但是没有修改,再点击别的位置,会自动把MainWindow第一个字母小写,导致上面的出错 改回大写就好了
- linux c++ 报错 invalid use of incomplete type 解决方法
原因:编译器不知道所用的struct 或者是class的具体实现, 分析:通常出现在如下情况:假设我们有一个class some定义在some.h中,实现在some.cpp中,我们在other.cpp ...
- invalid use of incomplete type 报
gcc中,在引用某个已经实现的类时:如果只是定义某个类的指针,可以使用class关键字先进行声明,而不需包含头文件:但如果涉及到定义某个类的对象或是引用类的某个具体成员时,则必须包含该类 ...
- error: invalid use of incomplete type 'struct word'|
发生错误的程序: #include <stdio.h> #include <string.h> #include <algorithm> int cmp(const ...
最新文章
- 短短的 RESTful API 设计规范
- 学会动态丨中国人工智能学会重磅发布《2018人工智能产业创新评估白皮书》
- HibernateSessionFactory的用法
- 下面关于微型计算机控制技术的叙述,(微型计算机控制技术选择题.docx
- 【未来可能用到】关于模型的100个问答-part1
- 本月 上月 php,显示本月,上月,今天,今年以及各时间起点与
- 计算机网络学习笔记-1.1.5-分层结构、协议、接口、服务
- pwm调速流程图小车_PWM调速+循迹__智能小车程序
- 利用正则表达式限制网页表单里的文本框输入内容
- hashmap浅析-get方法
- mysql sql语法解析器_Druid SQL 解析器概览
- Error Code: 1054. Unknown column 'xxx' in 'field list'
- pg比mysql优势_postgresql比mysql有多少优势
- Win2012或Win2016安装网卡
- iphone解锁那点事 (一)
- singleTask vs singleInstance
- CSS 的布局 盒子
- DirectDraw基础篇(学东西还是基础的好哦!)
- 图像加权和制作鬼影---OpenCV-Python开发指南(2)
- Win7电脑系统录屏功能使用教程分享
热门文章
- 报名 | 清华大学海外学者短期讲学:数字经济创新创业课程
- 独家 | 使用Python的LDA主题建模(附链接)
- 独家 | 用pandas-profiling做出更好的探索性数据分析(附代码)
- 为了研究因果关系,原来科学家在这么多方向上都有尝试(附链接)
- 独家 | 菜鸟必备的循环神经网络指南(附链接)
- 收藏 | AI领域必看的45篇论文(附下载地址)
- 报名 | 搜狐×清华:第三届内容识别算法大赛,比武招新两不误!
- 读博难,大神来支招:DeepMind科学家Sebastian Ruder提出十条实用建议
- 世界上最伟大的10个公式,其中一个人尽皆知
- 超越EfficientNet!MutualNet:一种自适应相互学习网络宽度和分辨率的网络