C++ 将函数传递给仿函数

C++ pass function into functor

我在使用函子时遇到问题。 下面显示了一个仿函数,它接受任何函数和 returns 它的函数值和导数。

template <class T>
struct Funcd {
    T &func;
    double f;
    Funcd(T &funcc) : func(funcc) {}
    double operator() (double &x)
    {
        return f=func(x);
    }

    void df(double &x, double &df)
    {
        ...
    }
};

假设我已经有了像

这样的函数
double FunctionA(double &x){
    return x*x;
}

我的问题是我不知道如何使用这个函子。 谁能在 main 函数中举一个例子,使用这个仿函数来查找函数值和导数? 谢谢!

您在创建仿函数时将其添加到仿函数中。使用与示例中相同的函数名称,我将执行以下操作:

Funcd fd(FunctionA);

那么你可以 fd 作为函数:

double v = fd(2);

可能是你在创建时必须指定模板参数fd不过,我还没有编译或测试这段代码。