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