设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
注册
快捷导航
平台
Portal
论坛
BBS
文库
项目
群组
Group
我的博客
Space
搜索
搜索
热搜:
shell
linux
mysql
本版
用户
LinuxSir.cn,穿越时空的Linuxsir!
»
论坛
›
编程开发讨论区 —— LinuxSir.cn
›
C\C++
›
c++中头文件的互相包括
返回列表
查看:
1062
|
回复:
7
c++中头文件的互相包括
[复制链接]
zlly20
zlly20
当前离线
积分
534
IP卡
狗仔卡
发表于 2006-4-29 11:33:17
|
显示全部楼层
|
阅读模式
最近遇到这么一个问题:
我有两个class, class a 和class b, class a 放在 a.h和a.cpp,class b 放在b.h和b.cpp.
在a.h里面的includ是这样的:
#include "b.h"
在b.h里面的includ是这样的:
#include "a.h"
这样的互相包括是否合法?我在编译的时候无法通过,总是说在b.cpp里的a的object没有声明。
我应该怎么解决这个问题?
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
显身卡
manphiz
manphiz
当前离线
积分
1153
IP卡
狗仔卡
发表于 2006-4-29 11:51:17
|
显示全部楼层
加上including guard,能够避免多次引用。如在a.h中:
#ifndef A_H
#define A_H
...
#endif
回复
支持
反对
使用道具
举报
显身卡
zlly20
zlly20
当前离线
积分
534
IP卡
狗仔卡
楼主
|
发表于 2006-4-29 16:37:33
|
显示全部楼层
我已经在两个.h文件中加入了,可是还是有同样的问题
回复
支持
反对
使用道具
举报
显身卡
zlbruce
zlbruce
当前离线
积分
1660
IP卡
狗仔卡
发表于 2006-4-29 18:17:45
|
显示全部楼层
在a.h中加:
#ifndef A_H
#define A_H
...
#endif
在 b.h 中加:
#ifndef B_H
#define B_H
...
#endif
回复
支持
反对
使用道具
举报
显身卡
zlly20
zlly20
当前离线
积分
534
IP卡
狗仔卡
楼主
|
发表于 2006-4-29 20:38:47
|
显示全部楼层
我就是这么做的啦。还是有这个问题。
回复
支持
反对
使用道具
举报
显身卡
pupilzeng
pupilzeng
当前离线
积分
2280
IP卡
狗仔卡
发表于 2006-4-29 21:52:40
|
显示全部楼层
是不是有交叉引用的情况?
那就采用前置声明:
class a;
class b;
回复
支持
反对
使用道具
举报
显身卡
zlly20
zlly20
当前离线
积分
534
IP卡
狗仔卡
楼主
|
发表于 2006-4-30 13:08:32
|
显示全部楼层
是有交叉引用的情况, 我在试试
回复
支持
反对
使用道具
举报
显身卡
guyon
guyon
当前离线
积分
98
IP卡
狗仔卡
发表于 2006-4-30 14:13:19
|
显示全部楼层
还有就是如果用到聚合的,会有问题
回复
支持
反对
使用道具
举报
显身卡
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
本版积分规则
发表回复
回帖后跳转到最后一页
Copyright © 2002-2023
LinuxSir.cn
(http://www.linuxsir.cn/) 版权所有 All Rights Reserved.
Powered by
RedflagLinux!
技术支持:
中科红旗
|
京ICP备19024520号
快速回复
返回顶部
返回列表