c++ listener示例
在C++中实现一个(listener)可以使用多种方式。下面将介绍两种常用的方法:通过函数指针和通过回调对象。
方法一:使用函数指针
函数指针是一种特殊的指针,指向函数的地址。在C++中,我们可以将函数指针作为参数传递给其他函数,从而实现事件监听的功能。
首先,我们需要定义一个函数指针类型。在C++中,可以使用typedef关键字来定义函数指针类型。例如,我们定义一个函数指针类型ListenerFunc,它指向一个没有返回值和参数的函数:
```cpp
typedef void (*ListenerFunc)();
```
接下来,我们定义一个类Listener,它包含一个函数指针成员变量:
```cpp
class Listener {
public:
void setListener(ListenerFunc func) {
m_func = func;
}
void notify() {
if (m_func) {
(*m_func)(); //调用函数指针所指向的函数
}
}
private:
ListenerFunc m_func;
};
```
在以上代码中,setListener函数用于设置函数指针,notify函数用于触发事件,并调用函数指针所指向的函数。
接下来,我们可以定义一个函数作为的回调函数:
```cpp
void onEvent() {
//响应事件的逻辑
std::cout << "Event occurred!" << std::endl;
}
```
然后,在主函数中创建Listener对象,并将回调函数传递给对象:
```cpp
int main() {
Listener listener;
listener.setListener(onEvent);
指针调用成员函数//触发事件
ify();
return 0;
}
```
运行以上代码,将输出"Event occurred!",即成功调用了回调函数onEvent。