1.介绍
钩子函数(Hook Function) 本质上是一种回调callback机制,它允许程序在特定事件发生时执行用户自定义代码。一种实现方式。
✔ Hook 是一种更广义的概念,指拦截或修改函数行为,而钩子函数是 Hook 的一种具体实现方式。
钩子函数 主要用于:
- 回调机制(在事件发生时执行自定义代码)
- 框架扩展(如 Qt 的
eventFilter()
) - 系统 Hook(拦截按键、鼠标等事件)
2.例子
回调机制。
#include <iostream>
#include <functional>// 定义钩子函数指针
std::function<void(int)> HookFunction = nullptr;// 触发事件时调用钩子
void DoSomething(int value) {std::cout << "Doing something with " << value << std::endl;// 如果有钩子函数,调用它if (HookFunction) {HookFunction(value);}
}// 自定义钩子函数
void MyHook(int value) {std::cout << "Hook triggered! Value: " << value << std::endl;
}int main() {// 设置钩子HookFunction = MyHook;// 触发事件DoSomething(42);return 0;
}
运行结果:
Doing something with 42
Hook triggered! Value: 42