我正在设计一个小数学库。我有代表函数类的类,例如多项式。实例化它们时,将提供所需的参数(a1,a2,a3),以便该对象实际上表示特定的多项式(a1 * x ^ 2 + a2 * x + a3)。
然后,我想提供在某个点(x = 3,y =?)评估函数的功能。我已经阅读了此Wiki和《 C ++思维》第12章。布鲁斯·埃克尔(Bruce Eckel)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
版本吗?
附注:这是我在Stackoverflow.com上的第一个问题,因此,请告诉我该问题是否有误(标题,标签,问题本身:P),我将很乐意予以纠正。
“我应该按值还是按引用返回y1?” 毫无疑问,按值来说,没有返回对新创建对象的引用的好方法。如果复制对象的成本是一个问题,那么您应该使用某种智能指针技术来提供快速复制。
“我还应该提供一个const版本吗?” 根据您所说的,您应该只提供一个const版本。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句