扫描二维码下载沐宇APP

沐宇

微信扫码使用沐宇小程序

沐宇

c++濡備綍瀹炵幇浜嬩欢鏈哄埗

扬州沐宇科技
2024-02-28 16:38:26
c++

鍦–++涓疄鐜颁簨浠舵満鍒堕€氬父闇€瑕佷娇鐢ㄥ洖璋冨嚱鏁版垨瑙傚療鑰呮ā寮忋€備笅闈㈡槸涓€绉嶇畝鍗曠殑瀹炵幇鏂规硶锛?/p>

  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. 瑙傚療鑰呮ā寮忥細瀹氫箟涓€涓富棰樼被锛圫ubject锛夊拰瑙傚療鑰呯被锛圤bserver锛夛紝涓婚绫诲寘鍚敞鍐岃瀵熻€呭拰閫氱煡瑙傚療鑰呯殑鏂规硶銆傜ず渚嬩唬鐮佸涓嬶細
#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;
}

浠ヤ笂鏄袱绉嶇畝鍗曠殑浜嬩欢鏈哄埗瀹炵幇鏂规硶锛屽疄闄呭紑鍙戜腑鍙互鏍规嵁闇€姹傞€夋嫨鍚堥€傜殑鏂规硶鏉ュ疄鐜颁簨浠舵満鍒躲€?/p>

扫码添加客服微信