我正在编写代码来模拟机器人在比赛板上四处移动,捡起障碍物并四处移动。目前,我在单独的文件中有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;
};
}
我一直在机器人类的向量中获取错误或错误类型。我想要做的是让环境创建块,然后将其加载到地图上。当机器人拾取这些块时,块对象将被加载到矢量blocks_on_robot中。每当机器人将块放置在平台上时,块对象都将被移动到平台类中的向量。
我对如何(或在何处)创建这些存储向量感到困惑,(我认为我可以稍后使用向量索引来传递对象)。我意识到这是一个令人困惑的问题。我可以使用一个外部函数来远程处理所有事情,但这似乎是我应该能够做的事情,而且该解决方案变得笨拙,需要管理30或40件事(最终将是这样)。我是自学成才的,所以很多时候我只是不知道在哪里寻找答案。感谢您能提供的所有帮助!
答案 0 :(得分:0)
您需要在#include
文件中"block.h"
robot.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
。>
答案 1 :(得分:-1)
//block.h
namespace rmas{
class Block{
//attributes of block
};
}
//robot.h
#include <vector>
using namespace std;
namespace rmas{ //Robot Movement Algorithm Simulator
class Robot{
vector<Block> blocks_on_robot;
};
}