1

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

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

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

该函数的原型是作业的一部分,或者我会更改它。我假设在返回类型方面我做错了什么。任何帮助表示赞赏。

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

4

1 回答 1

4

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

编辑:或者您可能希望保持<=与多项式的一致性,在这种情况下,您需要degree+1为数组分配项目。

于 2012-11-29T21:52:16.117 回答