我正在尝试做一些非常简单的事情。我有一个函数类,一个从函数类派生的多项式类。在多项式中,我正在重载* =运算符。但是,当我调用此运算符时,程序将转储核心并崩溃。

Polynomial& Polynomial::operator*= (double c)
{
    for(int i = 0; i <= degree; i++)
        a[i] = a[i] * c;
return *this;
}

多项式类将系数保存在数组a中。对于该特定系数,a的索引与x的幂直接相关。函数main向我们提供常数c,然后将其乘以每个系数。

该函数的原型(prototype)是分配的一部分,否则我将对其进行更改。我假设在返回类型方面我做错了。任何帮助表示赞赏。

如果愿意,我愿意提供更多代码。

最佳答案

返回类型很好,我猜问题是i <= degree而不是i < degree。 C++中的数组基于0。

编辑:或者您可能想将其保留为<=以便与多项式保持一致,在这种情况下,您需要为数组分配degree+1项。

关于c++ - 核心转储时进行迭代乘法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13635398/

10-11 10:56