[英]Class vector of objects from another class
我正在編寫代碼來模擬機器人在比賽板上四處移動,撿起積木並四處移動。 目前,我在單獨的文件中有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件事(最終將是這樣)。 我是自學成才的,所以很多時候我只是不知道在哪里尋找答案。 感謝您能提供的所有幫助!
您需要在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
。
//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; }; }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.