-- Abstraktā klase "figūra" - neveidojam tieši šīs klases objektus, bet veidojam objektus
-- no tās atvasinātajām klasēm
deferred class FIGURE
feature
-- nākamās četras klases ir abstraktas, tāpēc katras atvasinātas klases objektiem laukumi, perimetri,
-- smaguma centri un nobīdes par vektoru tiek rēķinātas savādāk
getArea: REAL is deferred end
getPerimeter: REAL is deferred end
getGravity: POINT is deferred end
getVector(p: POINT) is deferred end
end
Punktu klase
class POINT
inherit SINGLE_MATH
create make_xy
feature
-- Punkta koordinātes
x,y: REAL
-- Funkcija, kas aprēķina attālumu no punkta līdz citam punktam
getLength(p1:POINT): REAL is do
Result := sqrt((x - p1.x)^2 + (y - p1.y)^2)
end
-- Nobīde par vektoru
translate(a,b:REAL) is do x:=x+a; y:=y+b end…