www.delorie.com/gnu/docs/guile/goops_64.html   search  
Buy GNU books!

Goops Manual

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.3.1 Class definition

A new class is defined with the define-class(1) macro. The syntax of define-class is close to CLOS defclass:

(define-class class (superclass ...)
   slot-description ...
   class-option ...)

Class options will not be discussed in this tutorial. The list of superclasses specifies which classes to inherit properties from class (see 5.4 Inheritance for more details). A slot-description gives the name of a slot and, eventually, some "properties" of this slot (such as its initial value, the function which permit to access its value, ...). Slot descriptions will be discussed in 5.4.3 Slot description.

As an example, let us define a type for representation of complex numbers in terms of real numbers. This can be done with the following class definition:

(define-class  <complex> (<number>)
   r i)

This binds the variable <complex>(2) to a new class whose instances contain two slots. These slots are called r an i and we suppose here that they contain respectively the real part and the imaginary part of a complex number. Note that this class inherits from <number> which is a pre-defined class. (<number> is the direct super class of the pre-defined class <complex> which, in turn, is the super class of <real> which is the super of <integer>.)(3).

  webmaster     delorie software   privacy  
  Copyright 2003   by The Free Software Foundation     Updated Jun 2003