ここに私の問題があります。特定のクラスのオブジェクトのベクトルが必要で、それを他のクラスに渡して使用できます。
Vector がそのクラスのコンストラクター内にクラスのインスタンスを追加するようにします。したがって、クラスメンバー内に静的ベクトルを設定し、コンストラクターで push_back(this) を試してみたいと思います。
現在動作中のクラスは 2 つあります。1 つは、左クリックがあるたびに「Obstacle」クラス (ベクトルが必要なクラス) のインスタンスを作成するイベント ハンドラー クラスです。
(関係のないコードは省略しています)
class MyEventReceiver: public IEventReceiver
{
private:
blah blah
public:
blah blah
virtual bool OnEvent (const SEvent& event){
if(left click)
Obstacle obs(scn,randX,randY,randR);
}
}
Obstacle.h:
class Obstacle
{
private:
static std::vector<Obstacle> *obs;
public:
Obstacle(scene::ISceneManager*, float, float, float);
~Obstacle();
};
障害物の cpp:
std::vector<Obstacle> *Obstacle::obs;
Obstacle::Obstacle(scene::ISceneManager* scn, float x, float y, float radius)
{
//get and set the passed in params blah blah
obs->push_back(this);
}
これは機能しませんが、うまくいけば、私が達成しようとしていることがわかります。後で、obs への参照を返す関数が必要なため、他のクラスがこの関数を呼び出して、ベクトルにアクセスして操作および読み取りを行うことができます。