c++如何实现事件机制

c++
620
2024/2/19 16:38:26
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

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

  1. 回调函数:定义一个事件类,该事件类包含一个回调函数指针。当事件发生时,调用回调函数来处理事件。示例代码如下:
#include <iostream>
#include <functional>

class Event {
public:
    using Callback = std::function<void()>;

    Event(Callback callback) : m_callback(callback) {}

    void trigger() {
        if (m_callback) {
            m_callback();
        }
    }

private:
    Callback m_callback;
};

void handleEvent() {
    std::cout << "Event handled" << std::endl;
}

int main() {
    Event event(handleEvent);
    event.trigger();

    return 0;
}
  1. 观察者模式:定义一个主题类(Subject)和观察者类(Observer),主题类包含注册观察者和通知观察者的方法。示例代码如下:
#include <iostream>
#include <vector>

class Observer {
public:
    virtual void update() = 0;
};

class Subject {
public:
    void addObserver(Observer* observer) {
        m_observers.push_back(observer);
    }

    void notifyObservers() {
        for (Observer* observer : m_observers) {
            observer->update();
        }
    }

private:
    std::vector<Observer*> m_observers;
};

class EventObserver : public Observer {
public:
    void update() override {
        std::cout << "Event handled" << std::endl;
    }
};

int main() {
    Subject subject;
    EventObserver eventObserver;

    subject.addObserver(&eventObserver);
    subject.notifyObservers();

    return 0;
}

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

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: c++ activex组件怎样进行优化