Как реализовать лучше класс Matrix C++?
template<typename field, size_t rows, size_t columns>
class Matrix{
public:
Matrix(){
Matrix(field matrix[rows][columns])
Matrix operator+ (const Matrix& matrix)
Matrix operator- (const Matrix& matrix)
Matrix operator* (const Matrix& matrix)
private:
field matrix[rows][columns];
};
Встает вопрос: Как реализовать лучше умножение матрицу на матрицу, в случае если columns и Rows будут меняться. В плане, зная, что матрица будет 3 на 3, мы можем спокойно написать формулу для каждого члена матрицы, но что делать в случае, если матрица будет n на m, и как в данном случае лучше реализовать проверку на возможность переумножения матриц с заданными размерами. Мы же не можем просто взять и перемножить матрицы m на n и m на n
Предварительно проверять на совместимость
bool is_compatibility() const {
return rows == columns;
}
Исключение можно кинуть если матрицы несовместимы