Я работаю над классом матрицы в c ++, чтобы сделать операции над матрицами очень похожими на MATLAB. В MATLAB доступно два типа умножений.
- '*' -> Матричное к матричному умножению
- '. *' -> Умножение элементов
Чтобы выполнить эти операции в c ++, я перегрузил оператор '*', чтобы сделать Matrix для умножения матриц, и предоставил функцию-член mult () для выполнения поэлементных операций. Однако я не могу понять, каков порядок приоритетов между ними. Например, у меня есть три объекта A с размером (2x3), B с размером (2x3) и C с размером (3x2). Операции могут быть выполнены следующими двумя основными способами
- A.mult (В) * С
- С * A.mult (В)
Я выкидываю исключения как из перегруженного оператора, так и из функций-членов. Однако, так как этот класс будет использоваться людьми, которые мало знают об обработке исключений, я хотел бы иметь приоритет mult (), чем *, если это возможно.
Дайте мне знать, если я нарушил какие-либо правила переполнения стека. Я новичок, и это мой первый вопрос.
Заранее спасибо.