У меня есть 2 класса, которые представляют матрицу:
1. RegularMatrix - представление O (n ^ 2)
2. SparseMatrix - матрица, представленная в виде связанного списка (без нулей).
Допустим, у меня есть:
RegularMatrix a;
SparseMatrix b;
Я хочу иметь возможность:
a+b;
, а также:
b+a;
, поэтому я перегружаюсьоператор +Мой вопрос таков: поскольку я хочу, чтобы сложение было коммутативным (a + b = b + a), нужно ли мне реализовать 2 перегрузки, по одной для каждого случая?
RegularMatrix operator+(const RegualarMatrix &, const SparseMatrix &);
RegularMatrix operator+(const SparseMatrix & ,const RegualarMatrix &);
или существует общая формакакой компилятор решит сам?
Спасибо