在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函數觸發延遲調用。