在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函数触发延迟调用。