关于include的问题
发布网友
发布时间:2022-04-18 07:20
我来回答
共4个回答
热心网友
时间:2022-04-18 08:49
如果queue.h里面用到了plane.h里面的东西的话那queue.h里面就必须include "plane.h"。这就是为什么你会出错的原因。因为你不include所需要的东西的话,编译器是找不到写在其他文件里的东西的。
关于include语句到底放在哪里的问题。原则是哪里用到了就哪里需要include。下面介绍两个小技巧(大概用code style比较准确吧)
1.可以在.h文件里面先声明你所需要用到的class然后在.cpp文件中进行include.可以这么做的原因是编译器最终是将.h和.cpp对应生成.obj文件,然后这是的.obj就包含了所需要的include。但是不在.h文件里声明的话在前期进行词法分析时会出错,因为找不到class.
2.可以在.h文件中加入
#ifndef _XXX_
#define _XXX_
class ClassName
{
};
#endif
这样的好处是可以减少每个obj中的代码量。因为include一个文件后,编译器会把include文件里的内容一同加入。
热心网友
时间:2022-04-18 10:07
这个嘛,肯定你在queue.h里面肯定用到了Plane.h里面的东西喽,再有就是你自己写的.h文件要先预编译才能执行的,你在cpp文件里include肯定会报错喽
热心网友
时间:2022-04-18 11:42
include语句 的作用, 是 把要 include 的文件, 在编译时, 在include语句 所在位置 插入进来, 形成一段 完整 的程序, 以便编译器 编译。
include语句 可以放在 .h文件里, 也可以 放在.cpp文件里,但 形成的这段 完整程序 应当是 语法上 有条理 的。例如,函数原型声明,全局量必须在前面出现。例如,同样的内容 不能 include 两次 或 多次, 成了重复声明。
没有把要用的函数原型声明(或定义),全局量声明include进来,或两次 或 多次include进来,就会有编译错误发生。这就是你的出错原因。
为避免include 两次 或 多次,可用 宏 定义 把include 内容 括起来。
#ifndef _xxxx_
#define _xxxx_
。。
#endif
热心网友
时间:2022-04-18 13:33
JYTJUKGHFJFNGFJKTVHYGFHJGKTUYJKK