10.13.6.9 create/2

Synopsis

create(+Descriptor,-Obj)

Arguments

Descriptor
term
Obj
object

Description

Obj is a newly created and initialized object. Descriptor is a term describing the object to create. After memory is allocated and any slot initializations are performed, a create message is sent to the object.

The functor of Descriptor indicates the class to create. The arguments of the create message are the arguments of Descriptor.

Exceptions

instantiation_error
Descriptor is unbound.
domain_error
Descriptor is not a valid create descriptor.
resource_error
unable to allocate enough memory for object.

Caveat

You must have a create/N method for every arity N you want to be able to use in creating instances of a class. This includes arity 0. If no such method exists, a domain error will be raised.

Examples

Given the class definition

     :- class point =
                     [public x:integer=1,
                      public y:integer=2].
     
     Self <- create.
     Self <- create(X, Y) :-
                     Self << x(X),
                     Self << y(Y).
     :- end_class point.

the command

     | ?- create(point, Point1).

creates a point object, with the default slot values for x and y, and binds variable Point1 to the new object. The command

     | ?- create(point(10,15), Point2).

creates a point object with values 10 and 15 for slots x and y, respectively, and binds variable Point2 to the new object.

See Also

destroy/1


Send feedback on this subject.