Editing Classdef

Jump to navigation Jump to search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.

Latest revision Your text
Line 93: Line 93:
 
=== Features that are not implemented ===
 
=== Features that are not implemented ===
  
==== [https://www.mathworks.com/help/matlab/enumeration-classes.html enumeration] ====
+
==== enumeration ====
  
 
Octave should be able to parse the enumeration section of a classdef definition but nothing is done with it.  Progress on this feature is tracked in bug report {{bug|44582}}.
 
Octave should be able to parse the enumeration section of a classdef definition but nothing is done with it.  Progress on this feature is tracked in bug report {{bug|44582}}.
  
==== [https://www.mathworks.com/help/matlab/matlab_oop/learning-to-use-events-and-listeners.html events and listeners] ====
+
==== events and listeners ====
  
 
Octave should be able to parse the events section of a classdef definition but nothing is done with it.  Progress on this feature is tracked in bug report {{bug|56194}}.
 
Octave should be able to parse the events section of a classdef definition but nothing is done with it.  Progress on this feature is tracked in bug report {{bug|56194}}.
  
==== [https://www.mathworks.com/help/matlab/matlab_oop/property-validator-functions.html Property Validation Functions] ====
+
==== built-in class as superclass ====
  
=== Open Bug Reports for Other Issues ===
+
Octave does not allow subclassing built-in classes.  In Matlab, classdef objects may subclass built-in integer, floating point, and logical types.  For example,
 +
 +
<source lang="octave">
 +
classdef nonsense < uint32
 +
  ...
 +
end
 +
</source>
 +
 
 +
does not work.
 +
 
 +
Progress on this feature is tracked in bug report {{bug|44035}}.
 +
 
 +
==== concatenation of classdef objects ====
 +
 
 +
Octave does not support concatenation of classdef objects to create classdef array objects.
 +
 
 +
Example:
 +
 
 +
<source lang="octave">
 +
classdef MyClass < handle
 +
end
 +
 
 +
c = MyClass();
 +
cc = [c, c];  % won't work
 +
</source>
 +
 
 +
For now you can use a cell-array of objects instead:
 +
<source lang="octave">
 +
cc = {c, c};  % ok
 +
</source>
 +
 
 +
Progress on this feature is tracked in bug reports {{bug|44665}} and {{bug|53906}}.
 +
 
 +
==== Saving and loading classdef objects ====
 +
 
 +
Saving and loading classdef objects is not supported.
 +
 
 +
Progress on this feature is tracked in bug report {{bug|45833}}
 +
 
 +
=== Open Bug Reports for Issues not Described Above ===
  
 
==== Issues with basic classdef functionality ====
 
==== Issues with basic classdef functionality ====
Line 124: Line 163:
 
* [https://savannah.gnu.org/bugs/?55746 55746] interpreter fails to instantiate classdef with classdef properties
 
* [https://savannah.gnu.org/bugs/?55746 55746] interpreter fails to instantiate classdef with classdef properties
 
* [https://savannah.gnu.org/bugs/?52582 52582] using static method to initialize property value fails
 
* [https://savannah.gnu.org/bugs/?52582 52582] using static method to initialize property value fails
* [https://savannah.gnu.org/bugs/?45833 45833] support load/save of classdef objects
 
  
 
==== Classdef and +package directories ====
 
==== Classdef and +package directories ====
Line 149: Line 187:
 
* [https://savannah.gnu.org/bugs/?53811 53811] cellfun does not find overloaded function with function name argument
 
* [https://savannah.gnu.org/bugs/?53811 53811] cellfun does not find overloaded function with function name argument
 
* [https://savannah.gnu.org/bugs/?52989 52989] classdef: missing error messages on multiply defined properties
 
* [https://savannah.gnu.org/bugs/?52989 52989] classdef: missing error messages on multiply defined properties
* <strike>[https://savannah.gnu.org/bugs/?52614 52614] setting properties of classdef object during construction with inheritance</strike>
+
* [https://savannah.gnu.org/bugs/?52614 52614] setting properties of classdef object during construction with inheritance
 
* [https://savannah.gnu.org/bugs/?52582 52582] Dependent constant properties in classdef errors: no such file
 
* [https://savannah.gnu.org/bugs/?52582 52582] Dependent constant properties in classdef errors: no such file
 
* [https://savannah.gnu.org/bugs/?52123 52123] Indirect memory leak in cdef_manager::initialize ()
 
* [https://savannah.gnu.org/bugs/?52123 52123] Indirect memory leak in cdef_manager::initialize ()
Line 161: Line 199:
 
* [https://savannah.gnu.org/bugs/?55755 55755] mxGetProperty does not work with properties marked as Dependent
 
* [https://savannah.gnu.org/bugs/?55755 55755] mxGetProperty does not work with properties marked as Dependent
 
* [https://savannah.gnu.org/bugs/?55767 55767] classdef property should not be the same as classdef name (at least for Matlab compatibility)
 
* [https://savannah.gnu.org/bugs/?55767 55767] classdef property should not be the same as classdef name (at least for Matlab compatibility)
* [https://savannah.gnu.org/bugs/?44035 44035] unable to subclass built-in types
 
  
 
==== Documentation ====
 
==== Documentation ====

Please note that all contributions to Octave may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see Octave:Copyrights for details). Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)

Template used on this page: