我正在用c ++编写矩阵类,以使矩阵运算与MATLAB非常相似。 MATLAB中有两种类型的乘法。
要在c ++中实现这些操作,我已经重载了'*'运算符以进行Matrix到矩阵的乘法,并提供了一个成员函数mult()来进行元素明智的操作。但是,我无法弄清楚两者之间的优先顺序是什么。例如,我有三个大小为(2x3)的对象A,大小为(2x3)的B和大小为(3x2)的C。可以通过以下两种主要方式执行操作
我从重载的运算符和成员函数中抛出异常。但是,由于此类将由对异常处理了解不多的人使用,因此,我希望mult()的优先级比*更高(如果可能)。
让我知道我是否违反了堆栈溢出的任何规则。我是新手,这是我的第一个问题。
谢谢。
答案 0 :(得分:3)
根据C ++标准,函数调用的优先级高于乘法运算符,因为函数调用的优先级为2,而乘法的优先级为5。
另请参阅:https://en.cppreference.com/w/cpp/language/operator_precedence