数组的输出值,而不是数组的内存地址

时间:2018-11-08 15:31:25

标签: c++ arrays polynomials

因此,我在C ++中创建了一个基本的多项式类,该类将这些多项式的系数动态存储在堆中。我目前正在重载运算符,以便可以将多项式加/减在一起以简化它们,等等。 但是,当我尝试重载*运算符时,我得到了意外的结果。看起来不是在返回数组中的索引值,而是在返回数组的位置。 这是我的.cpp文件中的* operator方法:

Polynomial Polynomial::operator*(Polynomial p) {
int maxDegree = (degree)+(p.degree - 1);
int *intArray3 = new int[maxDegree];
int i, j;
for (int i = 0; i < degree; i++) {
    for (int j = 0; j < p.degree; j++) {
        cout << getCoef(i) << " * " << p.getCoef(j) << " = " << getCoef(i)*p.getCoef(j) << endl;
        intArray3[j] += (getCoef(i))*(p.getCoef(j));
        cout << " intArray3[" << j << "] contains : " << intArray3[j] << endl;
    }
}
return Polynomial(maxDegree, intArray3);}

行:

cout << getCoef(i) << " * " << p.getCoef(j) << " = " << getCoef(i)*p.getCoef(j) << endl;

cout << " intArray3[" << j << "] contains : " << intArray3[j] << endl;

返回

10 * 1 = 10
intArray3[0] contains : -842150441

在我的控制台中。我假设问题出在我在某处使用指针,但是我一生无法思考为什么。我以与+和-重载类似的方式实现了此重载,并且它们可以正常工作。任何帮助将不胜感激。干杯。

0 个答案:

没有答案