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 ...
最新文章
- c语言统计最长单词长度,求3个字符串中最长单词的长度 求救 会一个的
- laravel 目录
- android.mk 优化编译,android下ndk编译c优化
- 小打卡基于阿里云构建企业级数仓的实践及总结
- 【Linux】一步一步学Linux——getfacl命令(118)
- 重庆找Java开发工作_重庆【Java开发程序员】
- 脚本配置文件(通过一个案例解释下什么叫脚本配置文件)
- 判断数组中是否包含某个元素,判断对象中是否包含某个属性,判断字符串中是否包含某个字符串片段
- c# xmlhttp POST提取远程webservice数据
- VMware 修复 Fusion 和 Horizon 中的两个提权漏洞
- 循环神经网络(LSTM和GRU)(1)
- java插件安装步骤_eclipse插件安装的四种方法
- 第8章 面向对象高级编程与网络编程
- Nutch1.2二次开发详细攻略(二)【图文】------Windows平台下Nutch1.2的搭建
- 快手小视频批量下载高清无水印软件 快手短视频批量下载高清无水印软件
- 花瓣网爬取美女图片 每次20张
- nodejs爬虫获取漫威超级英雄电影海报
- 关系数据库——关系操作关系模型的完整性
- 要么听我的,要么走开(摘自《代码之道》第8章)
- 拒酒词――――――社交必备
热门文章
- 为什么 OLAP 需要列式存储
- Using Graphviz dot for ERDs, network diagrams and more
- 大数据能力提升项目| 学生成果展系列之一
- 独家 | 在数据科学中需要多少数学技能?(附链接)
- 开学综合症有救了!17篇最新AI论文不容错过(附链接)
- 教你用PyTorch实现“看图说话”(附代码、学习资源)
- 【PySlowFast】Facebook开源算法代码库PySlowFast,轻松复现前沿视频理解模型
- 8个流行的Python可视化工具包!!!
- 目标检测比赛中的trick
- 2020 IEEE冯诺依曼奖得主:Michael Jordan --机器学习领域泰斗级人物