温馨提示×

c++ delegate如何实现延迟调用

c++
小樊
85
2024-07-16 00:04:50
栏目: 编程语言

在C++中,可以通过使用函数指针或者Lambda表达式来实现延迟调用的delegate。以下是使用Lambda表达式实现延迟调用的示例代码:

#include <iostream>
#include <functional>

class Delegate {
public:
    void SetCallback(std::function<void()> callback) {
        m_callback = callback;
    }

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

private:
    std::function<void()> m_callback;
};

int main() {
    Delegate delegate;

    delegate.SetCallback([]() {
        std::cout << "Delayed call" << std::endl;
    });

    // Some other code here

    delegate.Invoke();

    return 0;
}

在上面的示例中,我们定义了一个Delegate类,该类包含一个函数指针成员m_callback,通过SetCallback函数设置延迟调用的Lambda表达式,然后通过Invoke函数触发延迟调用。

0