我正在编写代码来模拟机器人在比赛板上移动、捡起积木并四处移动。目前,我在单独的文件中有 2 个类(实际上有 5 或 6 个,但我只需要学习 1 个):robot.h 和 block.h。这是我的代码示例:
//block.h
namespace rmas{
class Block{
//attributes of block
};
}
//robot.h
namespace rmas{ //Robot Movement Algorithm Simulator
class Robot{
vector<Block> blocks_on_robot;
};
}
我一直在机器人类的 vector 中收到错误或错误类型。我想要做的是让环境创建 block ,然后将它们加载到 map 上。当机器人捡起这些 block 时, block 对象被加载到 vector blocks_on_robot 中。每当机器人将积木放在平台上时,积木对象就会移动到平台类中的 vector 中。
我有点不知道如何(或在哪里)创建这些存储 vector ,(我想我可以稍后使用 vector 索引来传递对象)。我意识到这是一个令人困惑的问题。我可以使用外部函数来远程处理所有事情,但这似乎是我应该能够做的事情,而且该解决方案变得笨拙,需要管理 30 或 40 件事情(最终会是这样)。我是自学成才的,所以我常常不知道去哪里寻找答案。我感谢我能得到的所有帮助!
最佳答案
您需要在robot.h
文件中#include
"block.h"
,因此它应该如下所示:
#include <vector>
#include "block.h"
namespace rmas {
class Robot {
std::vector<Block> blocks_on_robot;
};
}
这是一个完整的小示例:https://repl.it/repls/PromotedInfantileMathematics
当然,在您的实际项目中,您应该只在头文件中声明 Block
和 Robot
构造函数,并将定义移动到 block.cpp
和 robot.cpp
分别。
关于c++ - 来自另一个类的对象的类 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56996083/