簡體   English   中英

將成員 function 綁定到另一個成員

[英]Bind Memeber function to another member

我想要一個系統,其中 class 內部的 object 可以在分配時在 ZA2F2ED4F8EBC2CBB4C21A2DZ4 內部調用 function。

像這個對撞機組件示例:

 class colliderComponent
{
  void Collide()
{
//call the assigned function 
}

}



 class object
{
public:
void collideDelegate()
{
 // do something
}

public:
  collidercomponent* cc;

 Object()
{
 cc-> //assign collide delegate to be called on Collide()
}
}

您可以使用std::functionstd::bind來做到這一點。 這是一個示例(現場演示):

#include <functional>
#include <iostream>

class colliderComponent
{
public:
void Collide()
{
collideDelegate(); 
}
std::function<void()> collideDelegate;
};



class Object
{
public:
void collideDelegate()
{
    std::cout << "collide delgate" << std::endl;
}

public:
  colliderComponent* cc;

Object(colliderComponent* cc) : cc(cc)
{
 cc->collideDelegate = std::bind(&Object::collideDelegate,this); //assign collide delegate to be called on Collide()
}
};

int main()
{
    colliderComponent cc;
    Object o(&cc);
    cc.Collide();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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