中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

c++如何實現事件機制

c++
小億
110
2024-02-28 16:38:26
欄目: 編程語言

在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;
}

以上是兩種簡單的事件機制實現方法,實際開發中可以根據需求選擇合適的方法來實現事件機制。

0
泗阳县| 瑞丽市| 乌审旗| 宝丰县| 瓮安县| 临武县| 侯马市| 蒙阴县| 周口市| 深水埗区| 张家港市| 高邑县| 祁门县| 武穴市| 措勤县| 乌鲁木齐县| 秦安县| 林西县| 高邑县| 黄山市| 乌兰察布市| 商水县| 平顺县| 邵阳市| 弋阳县| 新昌县| 交城县| 陕西省| 洛扎县| 绥德县| 玉山县| 平阳县| 腾冲县| 新乡市| 吴忠市| 沅江市| 抚顺市| 吉隆县| 闽侯县| 广南县| 乌兰察布市|