1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<TITLE>CONSTRUCTORS Class Constructors
</TITLE>
</HEAD>
<BODY>
<H2>CONSTRUCTORS Class Constructors
</H2>
<P>
Section: <A HREF=sec_class.html> Object Oriented Programming </A>
<H3>Usage</H3>
When designing a constructor for a FreeMat class, you should
design the constructor to take a certain form. The following
is the code for the sample <code>mat</code> object
<PRE>
function p = mat(a)
if (nargin == 0)
p.c = [];
p = class(p,'mat');
elseif isa(a,'mat')
p = a;
else
p.c = a;
p = class(p,'mat');
end
</PRE>
<P>
Generally speaking when it is provided with zero arguments, the
constructor returns a default version of the class using a template
structure with the right fields populated with default values. If
the constructor is given a single argument that matches the class
we are trying to construct, the constructor passes through the
argument. This form of the constructor is used for type conversion.
In particular,
<PRE>
p = mat(a)
</PRE>
<P>
guarantees that <code>p</code> is an array of class <code>mat</code>. The last form
of the constructor builds a class object given the input. The
meaning of this form depends on what makes sense for your class.
For example, for a polynomial class, you may want to pass in the
coefficients of the polynomial.
</BODY>
</HTML>
|