Node:Instance creation and slot access, Next:Slot description, Previous:Class hierarchy and inheritance of slots, Up:Inheritance
Creation of an instance of a previously defined
class can be done with the make procedure. This
procedure takes one mandatory parameter which is the class of the
instance which must be created and a list of optional
arguments. Optional arguments are generally used to initialize some
slots of the newly created instance. For instance, the following form
(define c (make <complex>))
will create a new <complex> object and will bind it to the c
Scheme variable.
Accessing the slots of the new complex number can be done with the
slot-ref and the slot-set! primitives. Slot-set!
primitive permits to set the value of an object slot and slot-ref
permits to get its value.
(slot-set! c 'r 10) (slot-set! c 'i 3) (slot-ref c 'r) => 10 (slot-ref c 'i) => 3
Using the describe function is a simple way to see all the
slots of an object at one time: this function prints all the slots of an
object on the standard output.
First load the module (oop goops describe):
(use-modules (oop goops describe))
The expression
(describe c)
will now print the following information on the standard output:
#<<complex> 401d8638> is an instance of class <complex>
Slots are:
r = 10
i = 3