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