From: c. <car...@gm...> - 2012-11-25 15:52:04
|
On 25 Nov 2012, at 16:43, Richard wrote: > Really? so i can have a C++ class, and call it and its methods from an m-file in Octave, and have it persist like a real C++ object from one call of its methods to the next? Actually I was referring to using the class from an .oct file not from an .m file ... anyway yes you can construct a new class in c++ and have it accessible in the interpreter an be persistent between calls. In order to do this your class must inherit from the octave_base_value class. > This is not possible with plain mex files in Matlab because you must create an instance of a C++ class which will be destroyed once the mex file completes (which is the problem that using handle classes in the linked example solves). As I understood it Octave has the same limitation, but since it does not yet have classdef, there is no way to do the same thing. I'd be very interested hear if there was though, or that I have misunderstood something about oct files. The instrument control package is a working example of how this can be done, for a much simpler example you can have a look at these files: http://inversethought.com/hg/what-is-octave/file/f8c352d9af2d/PoliMI2012/examples/myobject.h http://inversethought.com/hg/what-is-octave/file/f8c352d9af2d/PoliMI2012/examples/myobject.cc which are examples taken from this presentation http://jordi.platinum.linux.pl/octave/what-is-octave.pdf > Richard c. |