有关头文件的问题,谢谢

scicos 2001-08-06 02:46:36
a.h中定义了一个类A,
b.h中定义了一个类B,

但是A类中要用到B类,而B类中要用到A类
可我又不想把两个头文件合并
该怎么办?
...全文
94 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
z_sky 2001-08-07
  • 打赏
  • 举报
回复
是的, ed9er(始祖鸟)很仔细,说的对,我敲错了,类里面应该是:
B *b;
A *b;
salesman 2001-08-06
  • 打赏
  • 举报
回复
楼上说的的确有道理,forward declaration 后,可以用它的引用,指针,如果实例化,会调用他的构造函数,不行。(在vc下)具体的内部机制请高手指点
goadengoat 2001-08-06
  • 打赏
  • 举报
回复
查贴子^_^
ed9er 2001-08-06
  • 打赏
  • 举报
回复
z_sky那样不能编译过去
class B以后B只是不完整类型
应该只能声明出指针,不能实例

我没试,如果能编译过去是没有道理的
A里有B,B里又有A
什么时候是个尽头?
一定要用指针
alloscdeveloper 2001-08-06
  • 打赏
  • 举报
回复
z_sky 讲的非常清楚了,简单来讲,在一个类未定义以前,可以使用它的照相来提前使用。
z_sky 2001-08-06
  • 打赏
  • 举报
回复
sorry, #include "a.h"
z_sky 2001-08-06
  • 打赏
  • 举报
回复
需要把其中一个类(例如B)作预定以:
//in a.h
class B;
class A {
B b;
};

//in b.h
#include a.h
class B {
A a;
}
jin999 2001-08-06
  • 打赏
  • 举报
回复
用extern 使之在外部有效

69,368

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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