У меня есть проблема с вызовом указателя функции на карте в C++.Указатель функций из другого класса C++
это моя функция типа указателя:
typedef int (AEvent::*setFunction)();
это моя карта:
std::map<const std::string, setFunction *> _actions;
так я найти свою функцию, как это:
auto mem = this->_actions.find("SHOOT")->second;
и теперь, как я могу назвать функцию?
Заранее благодарим за ваш ответ.
Это не функциональные указатели. Это указатели на функции * member *. Вы не можете «вызвать» функцию-член; скорее, вам нужен объект, на который вы его вызываете. Например, нет смысла спрашивать, как вызвать 'std :: string :: clear'; вам нужен фактический строковый объект для очистки. –
Но я не могу этого сделать, потому что, если я создаю объект AEvent, я не могу создать экземпляр его чистой виртуальной функции. –
Вы уверены, что отображенный тип верен? Почему указатель на указатель? –