如何直接评估函数?

use*_*701 2 c++ class

标题可能没有任何意义,但我真的不知道如何解释这一点.我有一个叫做多项式的一类,让说,我定义了一个名为polynome p12x+4.我想要做的是p1(5)直接计算.我不想要任何类似的东西,double calculate (polynomial)我希望能够用我的多项式计算p1(x).

我希望我的问题很明确

Ker*_* SB 11

重载函数调用操作符:

struct polynomial
{
    double a, b;
    polynomial(double m, double n) : a(m), b(n) { }  // represents "a * x + b"

    double operator()(double x) const
    {
        return a * x + b;
    }
};
Run Code Online (Sandbox Code Playgroud)

用法:

polynomial p(2.5, 3.8);

double val = p(1.0);
Run Code Online (Sandbox Code Playgroud)


jro*_*rok 5

通过重载,operator()您可以像调用函数一样"调用"对象:

struct polynomial {
    int operator()(int x)
    {
        /* calculate */
    }
};

int main()
{
    polynomial p;
    int x = p(5);
}
Run Code Online (Sandbox Code Playgroud)