在C++中,回調函數可以通過以下幾種方式來傳遞參數:
typedef void (*CallbackFunc)(int); // 定義函數指針類型
void RegisterCallback(CallbackFunc callback) {
callback(10); // 調用回調函數
}
void MyCallback(int value) {
// 回調函數的實現
std::cout << "Callback value: " << value << std::endl;
}
int main() {
RegisterCallback(MyCallback); // 注冊回調函數
return 0;
}
class Callback {
public:
void operator()(int value) {
// 回調函數的實現
std::cout << "Callback value: " << value << std::endl;
}
};
void RegisterCallback(Callback callback) {
callback(10); // 調用回調函數
}
int main() {
Callback myCallback; // 創建回調函數對象
RegisterCallback(myCallback); // 注冊回調函數
return 0;
}
#include <functional>
void RegisterCallback(std::function<void(int)> callback) {
callback(10); // 調用回調函數
}
void MyCallback(int value) {
// 回調函數的實現
std::cout << "Callback value: " << value << std::endl;
}
int main() {
std::function<void(int)> myCallback = MyCallback; // 創建回調函數對象
RegisterCallback(myCallback); // 注冊回調函數
return 0;
}
無論哪種方式,都可以在回調函數中傳遞參數,并在調用時進行使用。