学堂 学堂 学堂公众号手机端

在C++中实现事件机制通常需要使用回调函数或观察者模式

lewis 2年前 (2023-12-31) 阅读数 4 #技术

在C++中实现事件机制通常需要使用回调函数或观察者模式。下面是一种简单的实现方法:

  1. 回调函数:定义一个事件类,该事件类包含一个回调函数指针。当事件发生时,调用回调函数来处理事件。示例代码如下:
#include<iostream> #include<functional> classEvent{ public: usingCallback=std::function<void()>; Event(Callbackcallback):m_callback(callback){} voidtrigger(){ if(m_callback){ m_callback(); } } private: Callbackm_callback; }; voidhandleEvent(){ std::cout<<"Eventhandled"<<std::endl; } intmain(){ Eventevent(handleEvent); event.trigger(); return0; }
  • 观察者模式:定义一个主题类(Subject)和观察者类(Observer),主题类包含注册观察者和通知观察者的方法。示例代码如下:
  • #include<iostream> #include<vector> classObserver{ public: virtualvoidupdate()=0; }; classSubject{ public: voidaddObserver(Observer*observer){ m_observers.push_back(observer); } voidnotifyObservers(){ for(Observer*observer:m_observers){ observer->update(); } } private: std::vector<Observer*>m_observers; }; classEventObserver:publicObserver{ public: voidupdate()override{ std::cout<<"Eventhandled"<<std::endl; } }; intmain(){ Subjectsubject; EventObservereventObserver; subject.addObserver(&eventObserver); subject.notifyObservers(); return0; }

    以上是两种简单的事件机制实现方法,实际开发中可以根据需求选择合适的方法来实现事件机制。


    版权声明

    本文仅代表作者观点,不代表博信信息网立场。

    热门