为什么会有这样的错误,然后感觉代码段也有点弯弯绕绕,能理解的都打在了注释,其他的可以解释详细一点吗
1条回答 默认 最新
- 婉瑄|Vivian_ 2022-12-14 23:25关注
正如编译器的提示所述,编译器只在CA类的前面找到了CB类的声明,但没有找到其定义;
对CA类来说,CB是一个不完整类型(incomplete type),因为没有对其定义;
所以调用一个不完整类型的方法会报错。如果把CB的定义放在CA的前面,就没有错误了。
#include <iostream> class CA; class CB { CA* a; public: void funcA() { std::cout << "calling CB" << '\n'; } }; class CA { CB* b; public: void callCB() { b->funcA(); } }; int main() { CA a; a.callCB(); }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥50 用易语言http 访问不了网页
- ¥50 safari浏览器fetch提交数据后数据丢失问题
- ¥15 matlab不知道怎么改,求解答!!
- ¥15 永磁直线电机的电流环pi调不出来
- ¥15 用stata实现聚类的代码
- ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
- ¥20 docker里部署springboot项目,访问不到扬声器
- ¥15 netty整合springboot之后自动重连失效
- ¥15 悬赏!微信开发者工具报错,求帮改
- ¥20 wireshark抓不到vlan