Я хочу создать некую систему событий в C ++ для моих нужд
Я знаю, что вы можете использовать fuction в качестве другого параметра функции
Может быть, я что-то пропустил (но в C # вы можете сделать это с обработчиками событий)
Вы можете сохранить его в указателе.
Например
void func(int a) { ... }
void (*ptr)(int) = &func;
(*ptr)(5); // call the function with value 5
ptr — это указатель, который принимает в качестве значения память функции, имеющей один аргумент ‘int’ и ‘void’ в качестве возвращаемого типа.
Вы можете использоватьШаблон наблюдателя» (смотрите также UML):
Каждый слушатель события должен быть производным от абстрактного класса (Observer), который содержит методы события. Вы можете реализовать свой конкретный код слушателя событий в таком производном классе. Класс Subject содержит все объекты прослушивателя событий (вектор абстрактного класса Observer) и уведомляет их в случае возникновения события.