标题可能没有任何意义,但我真的不知道如何解释这一点。我有一个名为 polynomial 的类,假设我定义了一个名为p1
which is的多项式2x+4
。我想做的是p1(5)
直接计算。我不想要任何类似的东西,double calculate (polynomial)
我希望能够用 计算我的多项式p1(x)
。
我希望我的问题很清楚
重载函数调用运算符:
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);
通过重载operator()
,您可以像调用函数一样“调用”对象:
struct polynomial {
int operator()(int x)
{
/* calculate */
}
};
int main()
{
polynomial p;
int x = p(5);
}