matrixType& matrixType::operator+(const matrixType& matrixRight)
{
matrixType temp;
if(rowSize == matrixRight.rowSize && columnSize == matrixRight.columnSize)
{
temp.setRowsColumns(rowSize, columnSize);
for (int i=0;i<rowSize;i++)
{
for (int j=0;j<columnSize;j++)
{
temp.matrix[i][j] = matrix[i][j] + matrixRight.matrix[i][j];
}
}
}
else
{
cout << "Cannot add matricies that are different sizes." << endl;
}
cout << temp;
return temp;
}
最后的 cout 打印出我所期望的,但是当我将矩阵 a 和矩阵 b 一起添加到我的 main 中时,没有输出我不明白为什么在我返回它之前它会正确,但它没有当它返回时做任何事情。
int main()
{
matrixType a(2,2);
matrixType b(2,2);
matrixType c;
cout << "fill matrix a:"<< endl;;
a.fillMatrix();
cout << "fill matrix b:"<< endl;;
b.fillMatrix();
cout << a;
cout << b;
cout <<"matrix a + matrix b =" << a+b;
system("PAUSE");
return 0;
}
cout a 打印出矩阵 a 正确且与 b 相同,但 a+b 不打印任何内容,尽管在上面的运算符重载中我将其打印出来并且它打印出正确。