簡體   English   中英

來自另一個類的對象的類向量

[英]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
當然,在您的實際項目中,您應該只在頭文件中包含BlockRobot構造函數的聲明,並將定義分別移至block.cpprobot.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM