Previous: Function Locking, Up: Function Files

#### 11.7.6 Function Precedence

Given the numerous different ways that Octave can define a function, it is possible and even likely that multiple versions of a function, might be defined within a particular scope. The precedence of which function will be used within a particular scope is given by

1. Subfunction A subfunction with the required function name in the given scope.
2. Private function A function defined within a private directory of the directory which contains the current function.
3. Class constructor A function that constuctors a user class as defined in chapter Object Oriented Programming.
4. Class method An overloaded function of a class as in chapter Object Oriented Programming.
5. Legacy Dispatch An overloaded function as defined by See doc-dispatch.
6. Command-line Function A function that has been defined on the command-line.
7. Autoload function A function that is marked as autoloaded with See doc-autoload.
8. A Function on the Path A function that can be found on the users load-path. There can also be Oct-file, mex-file or m-file versions of this function and the precedence between these versions are in that order.
9. Built-in function A function that is builtin to Octave itself such as `numel`, `size`, etc.