C++ 超载'+';加两个矩阵

C++ 超载'+';加两个矩阵,c++,operator-overloading,C++,Operator Overloading,这是一个具有对象“矩阵”的类,该对象包含动态2D数组。我想这样做,这样我可以把两个矩阵加到另一个矩阵上。例如:a=b+c;b和c中对应元素的和(例如b[1][1]+c[1][1])将进入a[1][1] 但是我得到了“错误:在“.”之前应该是初始值设定项。不确定在这里做什么 //.h file Square_Matrix& operator+(const Square_Matrix& Par); //.cpp file Square_Matrix& Square_Matr

这是一个具有对象“矩阵”的类,该对象包含动态2D数组。我想这样做,这样我可以把两个矩阵加到另一个矩阵上。例如:a=b+c;b和c中对应元素的和(例如b[1][1]+c[1][1])将进入a[1][1]

但是我得到了“错误:在“.”之前应该是初始值设定项。不确定在这里做什么

//.h file
Square_Matrix& operator+(const Square_Matrix& Par);

//.cpp file
Square_Matrix& Square_Matrix::operator +(const Square_Matrix& Par){
    Square_Matrix result;
    Square_Matrix result.Set_Size(Par.Get_Size);
    for (int i = 0; i < Par.Get_Size; i++){
        for (int j = 0; j < Par.Get_Size; i++){
            result.matrix[i][j] = Par.matrix[i][j] + matrix[i][j];
        }   //assume matrix size will always be the same
    }

 return *this;  //is this correct as well?
}
/.h文件
平方矩阵和运算符+(常数平方矩阵和Par);
//.cpp文件
平方矩阵和平方矩阵::运算符+(常数平方矩阵和Par){
平方矩阵结果;
平方矩阵结果。设置大小(Par.Get大小);
对于(int i=0;i < PAR.GETSHIVE;I+++){
对于(int j=0;j < PAR.GETSHIVE;I+++){
结果。矩阵[i] [j]=PAR。矩阵[i] [j] +矩阵[i] [j];
}//假设矩阵大小始终相同
}
return*this;//这也正确吗?
}
更换

Square_Matrix result.Set_Size(Par.Get_Size);

因为您已经在前一行声明了
result
。(您不能在同一语句中声明变量并对其调用方法。)


(另外,假设
Square\u Matrix::Get\u Size
是一个方法,您需要用括号调用它,即
Par.Get\u Size()

您还在嵌套循环中再次增加i。

看起来它们也缺少一些
()
s.@JosephMansfield indeedAhh谢谢,那么除此之外,我的代码看起来应该可以正常工作吗?@Foxic查看我所做的编辑和Joseph Mansfield在上面的评论以及BWG对问题的评论对不起,不管我是否已修复,您对
结果不做任何处理
result.Set_Size(Par.Get_Size);