struct object
{
void function()
{
std::cout << "function" << std::endl;
}
};
int main()
{
// create vectors for objects and functions)
std::vector<object*> objectvec;
std::vector<void*> functionlist;
objectvec.push_back(new object);
// create a pointer to an object's function
void (object::* ptfptr_function) (void) = &object::function;
functionlist.push_back(&ptfptr_tryfunc);
// how do I call "functionvec[0]->tryfunc()" using the functionlist?
// (following line does nothing:)
functionlist[0];
}
答案 0 :(得分:2)
你想要这个:
std::vector<void(object::*)()> functionlist; // container
functionlist.push_back(&object::function); // add pointer-to-member-fn
(objectvec[0]->*functionlist[0])(); // invoke ptmf on an instance