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
对象,并使用它作为函数调用。