如何解决c++中循环包含头文件的问题
来源:互联网 发布:音序器软件中文版 编辑:程序博客网 时间:2024/05/16 23:33
今天在编译别的人写的代码时,出现 missing type specifier - int assumed. Note: C++ does not support default-int的错误。
在网上搜了一下,发现是头文件循环嵌套的问题。
之前一直以为用#ifndef就可以避免这种问题,今天才发现不行。
网上的解释是编译器在发现头文件之后会继续寻找该头文件包含的头文件,直到有一个头文件什么也没包含为止。不会理会#ifndef这个条件。所以如果循环包含,则必定导致错误。
解决的方法是,比如
a.h:
#include<b.h>
b.h:
//这里原本需要包含a.h,可以改成
class A;//声明a为一个外部类
classB
{
A *a;//记住,这里必须用指针,而不是对象,具体原因我还没弄清
....
}
//然后在b.cpp中添加a的头文件
#include<a.h>
b::b(){
a=new A();
}
这样就可以了。
阅读全文
0 0
- 如何解决c++中循环包含头文件的问题
- 如何解决c++中循环包含头文件的问题
- 如何解决c++中循环包含头文件的问题
- 解决C/C++ 头文件相互包含 问题的方法
- 解决C/C++ 头文件相互包含 问题的方法
- 解决C/C++ 头文件相互包含 问题的方法
- 解决VC中包含的unistd.h头文件问题
- 解决Visual C++ 中相互包含头文件的问题
- 解决Visual C++ 中相互包含头文件的问题
- C/C++ 中头文件相互包含引发的问题
- C/C++ 中头文件相互包含引发的问题
- C/C++ 中头文件相互包含引发的问题
- C/C++ 中头文件相互包含引发的问题
- C/C++ 中头文件相互包含引发的问题
- C/C++ 中头文件相互包含引发的问题
- C/C++ 中头文件相互包含引发的问题
- C/C++ 中头文件相互包含引发的问题
- C/C++中头文件多次包含的问题
- 解决VMware Pro 14安装Linux镜像时黑屏问题
- 1.4 对齐输出
- Hibernate之入门
- OpenWrt
- 光栅化的理解
- 如何解决c++中循环包含头文件的问题
- 《Android开发艺术探索》学习笔记---Activity详解
- 1.5 输出保留3位小数的浮点数
- centos 搭建 maven nexus
- HDU 最短路小小结(只涉及初级算法)
- How to convert a Map to List in Java?
- Jmeter日志相关
- Linux(Ubuntu)命令行入门:一些实用的Linux命令
- 在Windows下MySQL启动与停止方法