C++中的函數(shù)對(duì)象(也稱為仿函數(shù)或functor)是一種可以像函數(shù)一樣被調(diào)用的對(duì)象。它們可以通過繼承來實(shí)現(xiàn)特定的功能。以下是一個(gè)簡單的示例,展示了如何創(chuàng)建一個(gè)繼承自基類FunctionObject
的派生類DerivedFunctionObject
:
#include <iostream>
// 基類 FunctionObject
class FunctionObject {
public:
virtual ~FunctionObject() {}
virtual int operator()(int x) const = 0; // 純虛函數(shù)
};
// 派生類 DerivedFunctionObject
class DerivedFunctionObject : public FunctionObject {
public:
int operator()(int x) const override {
return x * 2;
}
};
int main() {
// 創(chuàng)建一個(gè) DerivedFunctionObject 對(duì)象
DerivedFunctionObject dfobj;
// 使用該對(duì)象作為函數(shù)調(diào)用
std::cout << "Result: " << dfobj(5) << std::endl; // 輸出 "Result: 10"
return 0;
}
在這個(gè)示例中,我們定義了一個(gè)名為FunctionObject
的基類,其中包含一個(gè)純虛函數(shù)operator()
。然后,我們創(chuàng)建了一個(gè)名為DerivedFunctionObject
的派生類,該類繼承自FunctionObject
并實(shí)現(xiàn)了operator()
函數(shù)。在main
函數(shù)中,我們創(chuàng)建了一個(gè)DerivedFunctionObject
對(duì)象,并使用它作為函數(shù)調(diào)用。