gpt4 book ai didi

c++ - 如何正确构建相互引用的类? (C++)

转载 作者:行者123 更新时间:2023-11-28 00:33:25 29 4
gpt4 key购买 nike

我正在开发一个基于递归构造函数的程序游戏关卡构建器。每个新的 Door 对象都会调用它之​​外的 Room 对象的构造函数,而 Room 对象又会为其墙壁调用新的 Door 构造函数,直到达到房间的限制。为了正确遍历,我需要我的房间知道门是什么,我的门需要指向它们去往/来自的房间的指针,但编译器似乎不喜欢它。起初,我将我的#includes 菊花链接起来(>> 在这里表示#include):

randDungeon.cpp >> door.cpp >> door.h >> room.cpp >> room.h >> Library.cpp >> Library.h

但是我在尝试编译时收到错误消息,基本上,room.cpp 不知道 Door 对象是什么。如果我在上面的流程中颠倒房间和门,我会得到相反的错误 - 我的房间知道它们的门是什么,但门不再理解房间。

什么是正确的类组织方式,使得非继承类 Door 和 Room 可以相互通信?

最佳答案

#include 所做的只是将文件内容复制并粘贴到基本文件 (randDungeon.cpp) 中。这使您的 .h 文件几乎毫无用处,并且正如您所发现的那样,这使得类的使用变得困难

你需要做的是:

  • 停止#includeing *.cpp 文件
  • #include 所需文件(.cpp 和 .h 文件)中的相关声明(*.h),或使用类的前向声明(首选)
  • 查看如何使用多个文件进行编译,因为您目前可能只是在编译 randDungeon.cpp

关于c++ - 如何正确构建相互引用的类? (C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21915290/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com