У меня есть матрица:Перегрузка оператор * для матрицы класса
#ifndef MATRIX_H
#define MATRIX_H
class Matrix
{
public:
Matrix(int rows, int columns);
Matrix(int, int, int** matrix);
Matrix(Matrix* copy);
~Matrix();
void Set(int, int, int);
void SetMatrix(int, int, int** matrix);
void Print();
void ZeroMatrix(int,int,int** matrix);
void Add(Matrix* B);
void Subtract(Matrix* B);
void Copy(Matrix* B);
int** Multiply(Matrix* B);
int** Create(int,int);
int** Get();
int** Transpose();
int** Scalar(int);
int Get(int,int);
int Rows();
int Columns();
Matrix operator*(int);
private:
int** _matrix;
int _rows;
int _columns;
};
#endif
Вот реализация:
Matrix Matrix::operator*(int scale)
{
return Matrix(_rows, _columns, Scalar(scale));
}
А для школьного задания мы должны перегрузить несколько оператору работать с целыми числами , Проблема в том, я получаю эту ошибку:
main.cpp: В функции 'Int основной (междунар, символ * )': main.cpp: 18: 15: ошибка: не подходит для 'оператора' в '4 * B'
Ломать код:
#include "Matrix.h"
#include <fstream>
#include <iostream>
int main(int argc, char *argv[])
{
Matrix* A = new Matrix(4,2);
A->Set(0,0,1);
A->Set(0,1,2);
A->Set(1,0,3);
A->Set(1,1,4);
A->Print();
Matrix B(A);
B.Print();
Matrix C(4 * B); //this line
C.Print();
delete A;
return 0;
}
Любые идеи?
редактировать # 1:
код:
Matrix operator*(int);
Matrix operator* (int, const Matrix &);
генерирует:
In file included from main.cpp:1:0:
Matrix.h:31:40: error: ‘Matrix Matrix::operator*(int, const Matrix&)’ must take either zero or one argument
In file included from matrix.cpp:1:0:
Matrix.h:31:40: error: ‘Matrix Matrix::operator*(int, const Matrix&)’ must take either zero or one argument
matrix.cpp:207:50: error: ‘Matrix Matrix::operator*(int, const Matrix&)’ must take either zero or one argument
Кстати, вам не нужно или '' fstream' или iostream' в главном файле, как ничто из либо фактически используется в основной , Лучше всего включить то, что вам нужно для каждого файла. – chris
домашняя работа должна иметь домашнее задание – Jasper
спасибо, не знали этого. –