Classdef: Difference between revisions
Jump to navigation
Jump to search
(immutable property set access not supported in 4.0.0) |
(function handles in OOP context) |
||
Line 37: | Line 37: | ||
Use "private" properties as workaround. | Use "private" properties as workaround. | ||
* Function handles to package methods and static class methods. | |||
For example if we have <code>+mypackage/myfunc.m</code>, creating a function handle as <code>fh = @mypackage.myfunc</code> won't work. | |||
As a workaround, we can create an indirection using an anonymous function <code>fh = @(varargin) mypackage.myfunc(varargin{:})</code>. | |||
Similarly for static class methods where <code>fh = @MyClass.myfunc</code> isn't yet supported. | |||
==== supported ==== | ==== supported ==== |
Revision as of 12:20, 17 June 2015
This page is a stub. We should begin documenting what classdef is implemented and what is not.
not supported
- enumeration
- build-in class as superclass
classdef nonsense < uint32
- array of objects. Example:
classdef MyClass < handle
end
c = MyClass();
cc = [c, c]; % won't work
For now you can use a cell-array of objects instead:
cc = {c, c}; % ok
- Immutable property set access. Example:
classdef MyClass < handle
properties (SetAccess = immutable)
x
end
methods
function obj = MyClass()
x = rand();
end
end
end
Use "private" properties as workaround.
- Function handles to package methods and static class methods.
For example if we have +mypackage/myfunc.m
, creating a function handle as fh = @mypackage.myfunc
won't work.
As a workaround, we can create an indirection using an anonymous function fh = @(varargin) mypackage.myfunc(varargin{:})
.
Similarly for static class methods where fh = @MyClass.myfunc
isn't yet supported.
supported
- methods
- static
- private