Mercurial > hg > octave-lyh
diff src/oct-obj.h @ 1968:a2e206524aa0
[project @ 1996-02-17 02:54:24 by jwe]
author | jwe |
---|---|
date | Sat, 17 Feb 1996 02:57:16 +0000 |
parents | e62277bf5fe0 |
children | 003570e69c7b |
line wrap: on
line diff
--- a/src/oct-obj.h +++ b/src/oct-obj.h @@ -28,7 +28,10 @@ #pragma interface #endif +#include <string> + #include "Array.h" +#include "str-vec.h" // Including this is all we need because pt-const.h gives us // declarations for all the data types Octave knows about. @@ -40,44 +43,80 @@ { public: - Octave_object (void) : Array<tree_constant> () { } + Octave_object (void) + : Array<tree_constant> () { } + Octave_object (int n, const tree_constant& val) : Array<tree_constant> (n, val) { } - Octave_object (const tree_constant& tc) : Array<tree_constant> (1, tc) { } + Octave_object (const tree_constant& tc) + : Array<tree_constant> (1, tc) { } + + Octave_object (double d) + : Array<tree_constant> (1, tree_constant (d)) { } + + Octave_object (const Matrix& m) + : Array<tree_constant> (1, tree_constant (m)) { } + + Octave_object (const DiagMatrix& d) + : Array<tree_constant> (1, tree_constant (d)) { } - Octave_object (double d); - Octave_object (const Matrix& m); - Octave_object (const DiagMatrix& d); - Octave_object (const RowVector& v, int pcv = -1); - Octave_object (const ColumnVector& v, int pcv = -1); + Octave_object (const RowVector& v, int pcv) + : Array<tree_constant> (1, tree_constant (v, pcv)) { } + + Octave_object (const ColumnVector& v, int pcv) + : Array<tree_constant> (1, tree_constant (v, pcv)) { } + + Octave_object (const Complex& c) + : Array<tree_constant> (1, tree_constant (c)) { } + + Octave_object (const ComplexMatrix& m) + : Array<tree_constant> (1, tree_constant (m)) { } - Octave_object (const Complex& c); - Octave_object (const ComplexMatrix& m); - Octave_object (const ComplexDiagMatrix& d); - Octave_object (const ComplexRowVector& v, int pcv = -1); - Octave_object (const ComplexColumnVector& v, int pcv = -1); + Octave_object (const ComplexDiagMatrix& d) + : Array<tree_constant> (1, tree_constant (d)) { } + + Octave_object (const ComplexRowVector& v, int pcv) + : Array<tree_constant> (1, tree_constant (v, pcv)) { } + + Octave_object (const ComplexColumnVector& v, int pcv) + : Array<tree_constant> (1, tree_constant (v, pcv)) { } + + Octave_object (const char *s) + : Array<tree_constant> (1, tree_constant (s)) { } - Octave_object (const char *s); - Octave_object (const string& s); - Octave_object (const string_vector& s); + Octave_object (const string& s) + : Array<tree_constant> (1, tree_constant (s)) { } + + Octave_object (const string_vector& s) + : Array<tree_constant> (1, tree_constant (s)) { } - Octave_object (double base, double limit, double inc); - Octave_object (const Range& r); + Octave_object (double base, double limit, double inc) + : Array<tree_constant> (1, tree_constant (base, limit, inc)) { } - Octave_object (const Octave_object& obj) : Array<tree_constant> (obj) { } + Octave_object (const Range& r) + : Array<tree_constant> (1, tree_constant (r)) { } + + Octave_object (const Octave_object& obj) + : Array<tree_constant> (obj) { } Octave_object& operator = (const Octave_object& obj) { - Array<tree_constant>::operator = (obj); + if (this != &obj) + Array<tree_constant>::operator = (obj); + return *this; } // Assignment will resize on range errors. - tree_constant& operator () (int n); + tree_constant& operator () (int n) { return elem (n); } + + tree_constant operator () (int n) const { return elem (n); } - tree_constant operator () (int n) const; + int all_strings (void) const; + + string_vector make_argv (const string&) const; private: @@ -96,14 +135,27 @@ Octave_object (int n); - void maybe_resize (int n); + void maybe_resize (int n) + { + if (n >= length ()) + resize (n + 1, Matrix ()); + } - tree_constant& elem (int n); + tree_constant& elem (int n) + { + maybe_resize (n); + return Array<tree_constant>::elem (n); + } + tree_constant& checkelem (int n); tree_constant& xelem (int n); - tree_constant elem (int n) const; + tree_constant elem (int n) const + { + return Array<tree_constant>::operator () (n); + } + tree_constant checkelem (int n) const; };