多项式的导数(c ++)

时间:2014-05-20 19:28:15

标签: c++ derivative

我应该创建一个简单的c ++程序,它有一个名为polynomial的类。 它将创建动态数组中有6个数据,每个索引都是该项的指数,其值为系数。 一切都很好,直到我面对: "成员函数重载+运算符(前缀),它将查找并返回多项式的导数"。

在那里,我真的无法理解我的期望。在构造函数中,我将数组大小设置为6,因为我将被使用。 例如;在运行时,我将命令多项式如:7.4x ^ 5 + 3.1x ^ 2-10.2x + 14.9它将给我它的衍生物。 正是我要求的不是所有代码都没有,而是带有+运算符重载的逻辑。除此之外,我对我的程序没有任何问题。

2 个答案:

答案 0 :(得分:0)

假设您的类名为Polynomial,您可以重载前缀增量运算符,如下所示:

class Polynomial {
...
public:
...
  Polynomial& operator++()
  {
  /* transform the polynomial to its derivative here */
  /* the new polynomial will have -1 coefficients from the original */
  return *this;
  }
...
};

然后在代码中,您可以执行以下操作:

Polynomial poly(...);
++poly;

HTH

答案 1 :(得分:0)

通过我们能够从评论中收集的内容,您需要提供unary + operator的成员重载。这个运算符如下:

Polynomial poly = Polynomial( /*initialise*/ );
Polynomial derivative;
derivative = +poly;

因此,在单词中,它作用于多项式并返回作为其导数的新多项式。

要求是将其声明为您的类的成员,这意味着您需要将以下内容添加到您的类定义中(作为公共成员):

Polynomial operator+();

然后在您的源文件中,您需要实现它;这段代码的骨架:

Polynomial Polynomial::operator+()
{
    Polynomial derivative;

    /* TODO: Set the derivative's coefficients to the derived coefficients of this */

    return derivative;
}

现在,此代码要求您实施copy constructor。如果您还没有这个,或者不知道如何做到这一点,并且您无法自己找到答案,那么请发布一个新问题。请注意the rule of three