在C++中,可以使用函數對象(也稱為仿函數或functor)來實現回調。函數對象是一個類,它重載了()運算符,使其能夠像函數一樣被調用。要實現回調,你需要將一個函數對象作為參數傳遞給另一個函數,然后在適當的時機調用該函數對象。
下面是一個簡單的示例,展示了如何使用函數對象實現回調:
#include <iostream>
#include <functional>
// 函數對象示例
class Callback {
public:
void operator()(int value) const {
std::cout << "Callback called with value: " << value << std::endl;
}
};
// 接受回調函數對象的函數示例
void process(int value, const std::function<void(int)>& callback) {
std::cout << "Processing value: " << value << std::endl;
callback(value); // 調用回調函數對象
}
int main() {
Callback myCallback; // 創建一個函數對象實例
process(42, myCallback); // 將函數對象作為回調傳遞給process函數
return 0;
}
在這個示例中,我們定義了一個名為Callback
的函數對象類,它重載了()運算符。然后,我們定義了一個名為process
的函數,它接受一個整數值和一個回調函數對象。在process
函數中,我們首先處理整數值,然后調用回調函數對象。最后,在main
函數中,我們創建了一個Callback
實例,并將其作為回調傳遞給process
函數。