please check below code (in VIP 7.5.0.2).
Code: Select all
interface myObj
end interface myObj
%---
class myObj : myObj
constructors
new : (integer Num).
end class myObj
%---
implement myObj
facts
num : integer.
clauses
new(Num) :-
num := Num,
stdIo::write("created object ", num, "\n").
clauses
finalize() :-
stdIo::write("finalized object ", num, "\n").
end implement myObj
%===
implement main
class predicates
createObject_nd : () nondeterm.
clauses
createObject_nd():-
N = std::cIterate(3),
_ = myObj::new(N).
clauses
run() :-
createObject_nd(),
fail.
run().
end implement main
in 32-bit mode:
Code: Select all
created object 0
created object 1
created object 2
finalized object 1
finalized object 0
finalized object 1
finalized object 2
Code: Select all
created object 0
created object 1
created object 2
finalized object 2
finalized object 1
finalized object 0
finalized object 0
Martin