2

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

我希望我的问题很清楚

4

2 回答 2

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;
    }
};

用法:

polynomial p(2.5, 3.8);

double val = p(1.0);
于 2013-08-14T11:51:50.077 回答
5

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

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

int main()
{
    polynomial p;
    int x = p(5);
}
于 2013-08-14T11:51:45.157 回答