Я прочитал несколько сообщений об этом, но, похоже, не могу найти то, что я ищу, с примером кода, если кто-нибудь может мне помочь, я был бы очень признателен.C++ Указатель элемента функции
в моем заголовке я есть:
void addEvent(void (*func)(Pack *));
void triggerEvents(Pack *);
std::list<void(*)(Pack *)> eventList;
и в CPP файле
void DNetwork::addEvent(void (*func)(Pack *)){
eventList.push_back(func);
}
void DNetwork::triggerEvents(Pack * pack){
for (std::list<void (*)(Pack *)>::iterator it = eventList.begin(); it != eventList.end() ;it++){
(*it)(pack);
}
}
Это прекрасно работает с бесплатными функциями, но когда я пытаюсь добавить функцию-член в этом списке я получаю ошибка. Кто-нибудь знает, как сохранить функцию-член (из объектов случайного класса) внутри указателя?
Яп: 'ReturnType (TheClass :: * memberPointer) (аргументы, ...) = & TheClass :: aMemberFunction; ' –
См. Раздел C++ FAQ 33: http://www.parashift.com/c++-faq/pointers-to-members.html – aschepler
Да, но я хочу иметь возможность хранить указатели на функции из разных классов.Возможно ли иметь родительский класс для класса, который я хочу использовать, который может принимать функции так, чтобы список был следующим: std :: list eventList; –