getElement函数和multipleMatrix函数错在哪里,如何改进
时间: 2024-04-08 08:29:01 浏览: 42
显示js对象所有属性和方法的函数
在getElement函数中,问题在于返回了一个int值的副本,而不是指定位置的元素的引用。这意味着对返回值进行修改不会影响到原始矩阵。为了修正这个问题,应该将返回类型更改为int&,以返回元素的引用。
在mutipleMatrix函数中,问题在于计算乘积时的错误逻辑。在每次循环中,应该将sum变量重置为0,并且需要更新m和n的值。此外,计算乘积时,应该使用累加的方式,而不是替换的方式。修正后的代码如下所示:
```cpp
Matrix mutipleMatrix(Matrix b){
Matrix *t = new Matrix();
for(int i=0; i<3; i++){
for(int j=0; j<3; j++){
int sum = 0;
for(int k=0; k<3; k++){
sum += this->getElement(i, k) * b.getElement(k, j);
}
t->getElement(i, j) = sum;
}
}
return *t;
}
```
这样修复之后,getElement函数将返回元素的引用,使得对返回值的修改能够影响到原始矩阵。mutipleMatrix函数将正确计算两个矩阵的乘积,并返回一个新的矩阵。
希望这次解释更加清晰明了。如果还有其他问题,请随时提问!
阅读全文