我正在开发一个基于递归构造函数的过程游戏级别构建器。每个新的Door对象都会调用其后面的Room对象的构造函数,而该对象又为其墙调用新的Door构造函数,直到达到房间的极限。为了正确遍历,我需要我的房间知道什么是门和我的门有指向他们往返房间的指针,但编译器似乎不喜欢它。起初我把#includes菊花链接下来(>>意味着#include在这里):
randDungeon.cpp>> door.cpp>> door.h>> room.cpp>> room.h>> Library.cpp>> Library.h
但是当我尝试编译时出现错误,其中的信息实际上是room.cpp不知道Door对象是什么。如果我在上面的流程中倒转房间和门,我会得到相反的错误 - 我的房间知道他们的门是什么,但是门不再理解房间。
正确的课程组织是什么,以及非继承人门和房间可以互相交流?
答案 0 :(得分:3)
所有#include
都会将文件内容复制并粘贴到基本文件(randDungeon.cpp)中。这使你的.h文件大多无用,正如你所发现的那样,使得使用类很难
您需要做的是:
#include
* .cpp文件#include
所需文件中的相关声明(* .h)(.cpp和.h文件),或使用类的前向声明(首选)