重载'+'以添加两个矩阵

时间:2014-02-22 18:54:17

标签: c++ operator-overloading

这是一个带有对象'矩阵'它包含动态2D数组。我想这样做,所以我可以在另一个矩阵上添加两个矩阵。例如:a = b + c; b和c中相应元素的总和(如b [1] [1] + c [1] [1])将进入[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?
}

2 个答案:

答案 0 :(得分:1)

替换

Square_Matrix result.Set_Size(Par.Get_Size);

result.Set_Size(Par.Get_Size);

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

(另外,假设Square_Matrix::Get_Size是一种方法,你需要用括号调用它,Par.Get_Size()

答案 1 :(得分:1)

你也在嵌套循环中再次递增。