Я кодирую матричный калькулятор и хотел, чтобы он вычислял такие операции, как: 2 * A, A * 3 (где A - матрица). Итак, я написал это:
matrix operator* (double x , matrix mat)
{
matrix temp(mat.n);
for (int i = 0; i < mat.n; ++i)
for (int j = 0; j < mat.n; ++j)
temp.t[i][j] = mat.t[i][j] * x;
return temp;
}
matrix operator* (matrix mat, double x)
{
matrix temp(mat.n);
for (int i = 0; i < mat.n; ++i)
for (int j = 0; j < mat.n; ++j)
temp.t[i][j] = mat.t[i][j] * x;
return temp;
}
(matrix
- это имя класса, n - это размер (матрицы квадратные), t - это c, 2-мерный массив t [n ] [n])
Как видите, я кодировал 2 совершенно идентичные функции, единственное отличие которых заключается в порядке аргументов. Есть ли способ объединить их в одну? Кроме преобразования x в диагональную матрицу и умножения их на 2 матрицы.
(кстати, это мой первый пост на этом форум, так что, пожалуйста, не стесняйтесь sh задавать мне такой тривиальный вопрос)