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 | -- from http://www.angelfire.com/tx4/cus/shapes/eiffel.html
class TRYME inherit ANY creation make
feature make is local i: INTEGER ashape: SHAPE scribble: ARRAY[SHAPE] arect: RECTANGLE
do -- create some shape instances !!scribble.make(0, 1) !RECTANGLE!ashape.make_rectangle(10, 20, 5, 6) scribble.put(ashape, 0) !CIRCLE!ashape.make_circle(15, 25, 8) scribble.put(ashape, 1)
-- iterate through the list and handle shapes polymorphically from i := scribble.lower until i > scribble.upper loop scribble.item(i).draw scribble.item(i).rmoveto(100, 100) scribble.item(i).draw i := i + 1 end
-- call a rectangle specific function !!arect.make_rectangle(0, 0, 15, 15) arect.setwidth(30) arect.draw end end
|