如何将函数用作变量c ++
how to use function as variable c++
我想根据需要用 C++ 创建某种事件系统
我知道你可以使用函数作为其他函数参数
可能是我遗漏了什么(但在 C# 中你可以使用事件处理程序来完成)
您可以将其存储在指针中。
例如
void func(int a) { ... }
void (*ptr)(int) = &func;
(*ptr)(5); // call the function with value 5
ptr 是一个指针,它将一个函数的内存作为值,该函数具有一个 'int' 参数和 'void' 作为 return 类型。
您可以使用“Observer Pattern" (see also UML):
每个事件侦听器都必须派生自抽象 class(观察者),其中包含事件方法。您可以在这样的派生 class 中实现您的特定事件侦听器代码。 Subject class 包含所有事件侦听器对象(抽象向量 class Observer)并在事件发生时通知它们。
我想根据需要用 C++ 创建某种事件系统
我知道你可以使用函数作为其他函数参数
可能是我遗漏了什么(但在 C# 中你可以使用事件处理程序来完成)
您可以将其存储在指针中。 例如
void func(int a) { ... }
void (*ptr)(int) = &func;
(*ptr)(5); // call the function with value 5
ptr 是一个指针,它将一个函数的内存作为值,该函数具有一个 'int' 参数和 'void' 作为 return 类型。
您可以使用“Observer Pattern" (see also UML):
每个事件侦听器都必须派生自抽象 class(观察者),其中包含事件方法。您可以在这样的派生 class 中实现您的特定事件侦听器代码。 Subject class 包含所有事件侦听器对象(抽象向量 class Observer)并在事件发生时通知它们。