C++中的文件引用问题#include....
c1.h文件中定义了AType类型c2.h文件中需要使用c1.h中定义的AType类型c2.cpp文件中有#include"c2.h"main.cpp文件中的引用顺序如下...
c1.h文件中定义了AType类型
c2.h文件中需要使用c1.h中定义的AType类型
c2.cpp文件中有#include "c2.h"
main.cpp文件中的引用顺序如下:
#include "c1.h"
#include "c2.h"
请问在c2.cpp文件中是否可以使用AType类型。我开始觉得包含的顺序是先包括c1.h文件的,应该可以在c2.cpp文件中使用的,但好像不行,也许可以,请给出答案,并解释为什么? 展开
c2.h文件中需要使用c1.h中定义的AType类型
c2.cpp文件中有#include "c2.h"
main.cpp文件中的引用顺序如下:
#include "c1.h"
#include "c2.h"
请问在c2.cpp文件中是否可以使用AType类型。我开始觉得包含的顺序是先包括c1.h文件的,应该可以在c2.cpp文件中使用的,但好像不行,也许可以,请给出答案,并解释为什么? 展开
4个回答
展开全部
首先 我要说一下 CPP文件 和H文件的一点关系
对于做工程来说 我们经常需要几个人共同完成一个比较大的任务 那么
就可能是几个人编了好几个.cpp文件
那么 如果我要用你编的cpp中的函数 怎么办
这样 就引入了.h文件
一般的 .h文件中 只放置类的声明 变量的声明 而且要加包含警戒 避免你在.h文件中定义了类 而导致重复包含
一般的形式是:
#ifnedf A
#define A
#endif
可以一个cpp文件对应一个.h文件
.h文件中包括了你这个cpp文件需要对外使用的函数
其他cpp如果需要用你的cpp中的函数
直接引入你所写的h就可以了
引用的顺序 实际上是无所谓的
.h文件中特别要注意 只写声明 不要定义
所以 你对c1.h的写法 是有一定问题的 包涵的时候 不知道会发生什么事情
如果你想在c2.cpp使用 Atype类型
建议你这样
在c1.h 声明类类型
在c1.cpp定义这个类类型 当然是 类外定义 要用到::
然后 在c2.cpp的头上 包含c1.h
就可以了
希望能对你有所帮助
对于做工程来说 我们经常需要几个人共同完成一个比较大的任务 那么
就可能是几个人编了好几个.cpp文件
那么 如果我要用你编的cpp中的函数 怎么办
这样 就引入了.h文件
一般的 .h文件中 只放置类的声明 变量的声明 而且要加包含警戒 避免你在.h文件中定义了类 而导致重复包含
一般的形式是:
#ifnedf A
#define A
#endif
可以一个cpp文件对应一个.h文件
.h文件中包括了你这个cpp文件需要对外使用的函数
其他cpp如果需要用你的cpp中的函数
直接引入你所写的h就可以了
引用的顺序 实际上是无所谓的
.h文件中特别要注意 只写声明 不要定义
所以 你对c1.h的写法 是有一定问题的 包涵的时候 不知道会发生什么事情
如果你想在c2.cpp使用 Atype类型
建议你这样
在c1.h 声明类类型
在c1.cpp定义这个类类型 当然是 类外定义 要用到::
然后 在c2.cpp的头上 包含c1.h
就可以了
希望能对你有所帮助
展开全部
可以使用的,因为这种定义是顺序包容的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一般顺序包含是可以用的哦。但是在定义头文件的时候一定要
#ifndef
#define ****
#endif
来定一一个头文件。如果不这样,你的程序就会有重复包含的错误。
用VS等自动生成一个头文件。看里面怎么声明的应该就清楚了吧。
重复包含问题。
就如你数
a.h中有AAA的定义,但AAA要用到BBB
b.h中有BBB的定义,但BBB中要用到AAA
这就叫循环包含了。这是不可以的。楼主那个只要在头文件定义的时候加上
#ifndef
#define ——————(这是你定义的,避免重复的定义的)
你的定义代码。。
#endif
就可以了哦。
#ifndef
#define ****
#endif
来定一一个头文件。如果不这样,你的程序就会有重复包含的错误。
用VS等自动生成一个头文件。看里面怎么声明的应该就清楚了吧。
重复包含问题。
就如你数
a.h中有AAA的定义,但AAA要用到BBB
b.h中有BBB的定义,但BBB中要用到AAA
这就叫循环包含了。这是不可以的。楼主那个只要在头文件定义的时候加上
#ifndef
#define ——————(这是你定义的,避免重复的定义的)
你的定义代码。。
#endif
就可以了哦。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
c2.h文件中应该有#include "c1.h"
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询