gpt4 book ai didi

c++ - 重载 '=' 使 '+' 与矩阵一起工作

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:45:55 24 4
gpt4 key购买 nike

这是一个具有对象“矩阵”的类,该对象存储二维动态数组。我需要能够添加 2 个矩阵并将元素的总和放入结果矩阵。 (即:c[1][1] 将等于 a[1][1] + b[1][1])。但我想通过以下方式实现它:

Square_Matrix a,b,c;
c = a + b;

这是我的两个重载运算符,“=”一个在“+”之外工作正常(所以 a = b = c 工作正常,矩阵被复制)。不幸的是,我的 IDE 没有出现错误,程序只是关闭并显示“Square_Matrix 已停止工作”。我怎样才能解决这个问题?

我也不太确定我是否正确实现了我的“+”,有人说“return *this”不会做任何事情。

//.h file
Square_Matrix& operator=(const Square_Matrix& Par2);
Square_Matrix& operator+(const Square_Matrix& Par3);

//.cpp file
Square_Matrix& Square_Matrix::operator=(const Square_Matrix& Par2){
if (size != Par2.size){
cout << "Matrices are of different size" << endl;
} else {
for (int i = 0; i < size; i++){
for (int j = 0; j < size; j++){
matrix[i][j] = Par2.matrix[i][j];
}
}
}
}

Square_Matrix& Square_Matrix::operator +(const Square_Matrix& Par3){
Square_Matrix result;
result.Set_Size(Par3.size);
for (int i = 0; i < Par3.size; i++){
for (int j = 0; j < Par3.size; j++){
result.matrix[i][j] = Par3.matrix[i][j]+matrix[i][j];
}
}
return *this;
}

最佳答案

你的 Square_Matrix& Square_Matrix::operator=(const Square_Matrix& Par2)应该以

结尾
return *this;

和你的Square_Matrix& Square_Matrix::operator +(const Square_Matrix& Par3)应该以

结尾
return result;

并改变

Square_Matrix& Square_Matrix::operator +(const Square_Matrix& Par3)

Square_Matrix Square_Matrix::operator +(const Square_Matrix& Par3)

关于c++ - 重载 '=' 使 '+' 与矩阵一起工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21959272/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com