File: class_constructors.html

package info (click to toggle)
freemat 4.0-3
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 174,756 kB
  • ctags: 67,023
  • sloc: cpp: 351,059; ansic: 255,892; sh: 40,590; makefile: 4,387; perl: 4,058; asm: 3,313; pascal: 2,718; fortran: 1,722; ada: 1,681; ml: 1,360; cs: 879; csh: 795; python: 430; sed: 162; lisp: 160; awk: 5
file content (47 lines) | stat: -rw-r--r-- 1,383 bytes parent folder | download | duplicates (3)
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>