【发布时间】:2013-09-25 09:37:56
【问题描述】:
我正在设计一个小型数学库。我有代表功能类的类,例如多项式。实例化它们时,会提供所需的参数(a1、a2、a3),因此对象实际上表示特定的多项式(a1*x^2 + a2*x + a3)。
然后我想提供在某个点(x=3,y=?)评估函数的功能。我已阅读 this wiki 和 Thinking in C++, Vol. 12 第 12 章。 1布鲁斯·埃克尔。他们都说我应该根据运算符的“含义”来决定是否重载。我不是一位经验丰富的 C++ 程序员,但据我所知,如果我有一个代表函数的类并且我使用 obj(x),我期望的值是 y 函数在 x 上的值。
疑问出现在维度上:我也必须表示向量函数 (http://en.wikipedia.org/wiki/Vector_function),比如 a1*x1 + a2*x2,我将有这样的签名:operator()(real x1, real x2)。我的问题是返回类型。如果 y1 = a1*x1 + a2*x2 是一个向量(无论是在数学上还是在 C++ 中),我应该按值还是按引用返回 y1?我还应该提供const 版本吗?
PS 这是我在 Stackoverflow.com 上的第一个问题,所以请告诉我问题是否有问题(标题、标签、问题本身:P),我很乐意纠正它。
【问题讨论】:
标签: c++ operator-overloading function-call-operator