Нужно создать указатель на метод класса ВНУТРИ класса

Рейтинг: -1Ответов: 1Опубликовано: 09.08.2025

Суть такая: у меня есть std::map<(Класс какого-то триггера), (указатель на метод, который должен использовать поля объекта)>

Если триггер сработал, я исполняю соответствующую ему функцию. Триггеры и методы я добавляю внутри конструктора класса. Лямбда функции использовать в моём случае не удобно

Ответы

▲ 1

Как оказалось, я забыл что изначально использовал в шаблоне c++ указатель на функцию (std::function), а потом использовал вызов (this->*func)(). Всем спасибо за помощь.
Рабочий вариант:

std::map<Trigger*, void(TriggerActionManager::*)()> triggerAction;
...
triggerAction.emplace(new Trigger, &TriggerActionManager::a0);
...
for (auto &triggerFunc : triggerAction) {
if (triggerFunc.first->getCollision()) (this->*triggerFunc.second)();
}