我有一个名为Reciever
的类,其中包含一个名为recieve(const Event *)
的函数,其中Event
继承自BaseEvent
。我想创建一个绑定到该类的特定实例。该实例称为rec
。为此,我使用:
void(Reciever::*func)(const Event *) = &Reciever::recieve;
auto recievePtr = std::bind(func, &rec, std::placeholders::_1);
但是,当我尝试将其存储在向量中时,我必须指定一个std::function
,其中BaseEvent
为输入,而不是Event
,如下所示:
std::vector<std::function<void(const BaseEvent*)>>
如何投射recievePtr
以便我可以将其正确存储在矢量中?这甚至可能吗?使用指向BaseEvent
的函数指针的问题是Reciever
可以有多个recieve()
方法,这些方法具有不同的派生类,所有这些都基于BaseEvent