温馨提示×

C++函数对象能继承吗如何做

c++
小樊
81
2024-11-09 05:32:31
栏目: 编程语言

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

0