在C++中,函數對象(也稱為仿函數或functor)是一種可以像函數一樣被調用的對象。要將參數傳遞給函數對象,您可以在定義類時添加相應的成員變量,并在構造函數中初始化它們。然后,您可以通過類的成員函數來訪問這些參數。
以下是一個簡單的示例,說明如何創建一個帶有參數的函數對象:
#include <iostream>
// 定義一個帶有參數的函數對象類
class MyFunctor {
public:
// 構造函數,用于初始化參數
MyFunctor(int a, int b) : m_a(a), m_b(b) {}
// 成員函數,用于執行操作并返回結果
int operator()(int x) {
return m_a * x + m_b;
}
private:
int m_a; // 參數A
int m_b; // 參數B
};
int main() {
// 創建一個函數對象實例,并傳遞參數
MyFunctor myFunctor(3, 4);
// 使用函數對象調用成員函數,并傳遞參數x
int result = myFunctor(5);
// 輸出結果
std::cout << "Result: " << result << std::endl; // 輸出 "Result: 23"
return 0;
}
在這個例子中,我們創建了一個名為MyFunctor
的類,它接受兩個整數參數a
和b
。我們在構造函數中初始化這些參數,并在成員函數operator()
中使用它們。在main
函數中,我們創建了一個MyFunctor
實例,并傳遞了參數3
和4
。然后,我們使用這個函數對象調用成員函數,并傳遞參數5
。最后,我們輸出結果,得到23
。