недопустимые операнды к ошибке двоичного выражения - PullRequest
0 голосов
/ 13 июля 2020

Я пытаюсь написать матричную программу на C ++ и получаю сообщение об ошибке недопустимые операнды для двоичного выражения. Я знаю, что это связано с моим перегруженным оператором с «*». В моем коде main. cpp:

Matrix mat7=mat1*3;
cout<<"Mult m1 * 3;"<<endl;
print_matrix(mat7);

В этой части я умножаю матрицу 1 на 3.

То, что мне нужно, находится в моей матрице. cpp

Matrix Matrix::operator * (const Matrix& mat2){
   if(this->num_cols==mat2.num_rows){
       Matrix result(num_rows, mat2.num_cols);
       for(int i=0; i<num_rows; i++){
           for(int j=0; j<mat2.num_cols; j++){
               result.matrix[i][j]=0;
               for(int k=0; k<this->num_cols; k++){
                   result.matrix[i][j]+=matrix[i][k]*mat2.matrix[k][j];
               }
           }
       }
       return result;
   }
   else{
       Matrix result(num_rows, num_cols);
       for(int i=0; i<num_rows; i++){
           for(int j=0; j<num_cols; j++){
               result.matrix[i][j]=0;
           }
       }
       return result;
   }
}

Это для моей перегрузки оператора умножения для умножения другой матрицы.

Мой вопрос: как мне сделать то же самое, но с целым числом?

1 Ответ

0 голосов
/ 13 июля 2020

Я думаю, что определение метода Matrix Matrix::operator* (int factor) должно сделать то, что вы ищете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...