头文件的包含问题

thulongkang 2012-07-16 10:06:22
有两个头文件:A.h 和B.h,这两个头文件中只是类的声明(为了简化问题,两个头文件中分别只有一个类的声明),而且对应两个cpp文件:A.cpp和B.cpp,还有一个main.cpp。前两个cpp文件中是定义的类的具体实现。这些文件都在一个工程当中。我的问题是,在B.h中如果include了A.h,因为B.h中的类的数据成员或者成员函数要用到A.h中声明的类,而且在main.cpp中include了A.h,B.h,这会造成什么问题吗?????????????是不是重复包含?
如果有什么问题的话,该如何解决??希望各位能帮忙解答。
...全文
134 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
cjc_729 2012-07-17
  • 打赏
  • 举报
回复
重复包含!可以在头文件中用宏避免重复定义:

#ifndef 宏
#define 宏

头文件定义

#endif
cgscylla 2012-07-17
  • 打赏
  • 举报
回复
我感觉如果B里面有A,那么MAIN.CPP就不需要再INCLUDE A了吧。只引入B.H,那么A里面定义的类就可以直接实例化个对象出来了。
Perry118 2012-07-17
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

引用 5 楼 的回复:

防止重复定义也可以用#pragma once
能否举一个例子?
[/Quote]

这个也要举例子么,我倒,直接在头文件开始加 @pragma once啊
thulongkang 2012-07-16
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

防止重复定义也可以用#pragma once
[/Quote]能否举一个例子?
pathuang68 2012-07-16
  • 打赏
  • 举报
回复
防止重复定义也可以用#pragma once
hechao05108 2012-07-16
  • 打赏
  • 举报
回复
重定义会出错“class type redefinition”
就用上面两楼的方法就OK啦!
w969242424 2012-07-16
  • 打赏
  • 举报
回复
防重复引用定义啊
#ifndef
#define
#endif
thulongkang 2012-07-16
  • 打赏
  • 举报
回复
我看见一种实现方法是#ifndef...#define...#endif,把这些添加到A.h和B.h中,这样做行不行?
pathuang68 2012-07-16
  • 打赏
  • 举报
回复
将A.h和B.h合并成一个头文件,必要的时候使用前置声明。

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧