我想根据我的需要在c ++中创建一些事件系统
我知道你可以使用功能作为其他功能参数
可能是我错过了一些东西(但在c#中你可以用事件处理程序来做)
答案 0 :(得分:1)
您可以使用“Observer Pattern”(另请参阅UML):
每个事件侦听器都必须从包含事件方法的抽象类(Observer)派生。您可以在此类派生类中实现特定的事件侦听器代码。 Subject类包含所有事件侦听器对象(抽象类Observer的向量),并在事件发生时通知它们。
答案 1 :(得分:0)
您可以将其存储在指针中。 例如
void func(int a) { ... }
void (*ptr)(int) = &func;
(*ptr)(5); // call the function with value 5
ptr是一个指针,它将具有一个' int'的函数的内存作为值。争论和' void'作为返回类型。