Operator Overloading - Untitled
Description: Untitled

Next: Precedence of Objects, Previous: Function Overloading, Up: Overloading Objects

#### 33.4.2 Operator Overloading

| Operation | Method | Description |
| a + b | plus (a, b) | Binary addition |
| a - b$ | minus (a, b) | Binary subtraction operator |
| + a$ | uplus (a) | Unary addition operator |
| - a$ | uminus (a) | Unary subtraction operator |
| a .* b$ | times (a, b) | Element-wise multiplication operator |
| a * b$ | mtimes (a, b) | Matrix multiplication operator |
| a ./ b$ | rdivide (a, b) | Element-wise right division operator |
| a / b$ | mrdivide (a, b) | Matrix right division operator |
| a .\ b$ | ldivide (a, b) | Element-wise left division operator |
| a \ b$ | mldivide (a, b) | Matrix left division operator |
| a .^ b$ | ldivide (a, b) | Element-wise power operator |
| a ^ b$ | mldivide (a, b) | Matrix power operator |
| a < b$ | lt (a, b) | Less than operator |
| a <= b$ | le (a, b) | Less than or equal to operator |
| a > b$ | gt (a, b) | Greater than operator |
| a >= b$ | ge (a, b) | Greater than or equal to operator |
| a == b$ | eq (a, b) | Equal to operator |
| a != b$ | ne (a, b) | Not equal to operator |
| a \& b$ | and (a, b) | Logical and operator |
| a | b$ | or (a, b) | Logical or operator |
| ! b$ | not (a) | Logical not operator |
| a'$ | ctranspose (a) | Complex conjugate transpose operator |
| a.'$ | transpose (a) | Transpose operator |
| a : b$ | colon (a, b) | Two element range operator |
| a : b : c$ | colon (a, b, c) | Three element range operator |
| [a, b]$ | horzcat (a, b) | Horizontal concatenation operator |
| [a; b]$ | vertcat (a, b) | Vertical concatenation operator |
| a(s_1, \ldots, s_n)$ | subsref (a, s) | Subscripted reference |
| a(s_1, \ldots, s_n) = b$ | subsasgn (a, s, b) | Subscripted assignment |
| b (a)$ | subsindex (a) | Convert to zero-based index |
| display | display (a) | Commandline display function |

Table 33.1: Available overloaded operators and their corresponding class method

An example `mtimes` method for our polynomial class might look like

         function y = mtimes (a, b)
           y = polynomial (conv (double(a),double(b)));
         endfunction