Mercurial > hg > what-is-octave
diff PoliMI2012/examples/myobject.h @ 4:0a1567794b40
[mq]: folder_reorganization
author | Carlo de Falco <cdf@users.sourceforge.net> |
---|---|
date | Thu, 08 Nov 2012 09:55:34 +0100 |
parents | |
children |
line wrap: on
line diff
new file mode 100644 --- /dev/null +++ b/PoliMI2012/examples/myobject.h @@ -0,0 +1,59 @@ +// Copyright (C) 2012 Carlo de Falco <carlo.defalco@gmail.com> +// +// This program is free software; you can redistribute it and/or modify it under +// the terms of the GNU General Public License as published by the Free Software +// Foundation; either version 3 of the License, or (at your option) any later +// version. +// +// This program is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +// details. +// +// You should have received a copy of the GNU General Public License along with +// this program; if not, see <http://www.gnu.org/licenses/>. + +#include <octave/oct.h> + +class myobject : public octave_base_value +{ + + public: + + // Constructor + myobject (const std::string _str = "", const int _intgr = 0, const double _dbl = 0.0) + : octave_base_value (), str (_str), intgr (_intgr), dbl (_dbl) { p_str = &str; } + + void print (std::ostream& os, bool pr_as_read_syntax = false) const + { os << "str : " << str << std::endl + << "intgr : " << intgr << std::endl + << "dbl : " << dbl << std::endl; } + + ~myobject(void) { }; + + bool is_defined (void) const { return true; } + + const std::string & get_str (void) const; + const int & get_intgr (void) const; + const double & get_dbl (void) const; + + std::string * p_str; + + void set_str (std::string & str); + void set_intgr (int & intgr); + void set_dbl (double & dbl); + + private: + + std::string str; + int intgr; + double dbl; + DECLARE_OCTAVE_ALLOCATOR; + DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA; + +}; + +DEFINE_OCTAVE_ALLOCATOR (myobject); +DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA (myobject, "myobject", "myobject"); + +static bool myobject_type_loaded = false;