C++函數(shù)對(duì)象能繼承嗎如何做

c++
小樊
81
2024-11-09 05:32:31
欄目: 編程語言

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)用。

0