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