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