Polymorphism: Difference between revisions

Line 30:
DECLARE SUB CircleSetR (pthis AS Circle, r0 AS INTEGER)
DECLARE SUB CirclePrint (pthis AS Circle)
DECLARE SUB PolyPrint (pthis AS ANY, type%)
 
TYPE Point
Line 39 ⟶ 40:
r AS INTEGER
END TYPE
 
DIM SHARED POINT%, CIRCLE%
POINT% = 0
CIRCLE% = 1
 
DIM p AS Point
Line 44 ⟶ 49:
 
PointInit p
CircleInit pc
 
REM No virtual function call possible
PointPrint p
CirclePrint pc
 
REM Faked virtual function
PolyPrint p, POINT%
PolyPrint c, CIRCLE%
END
 
SUB PolyPrint (pthis AS ANY, type%)
IF (type% = CIRCLE%) THEN
CirclePrint pthis
ELSE
PointPrint pthis
END IF
 
END SUB
CircleInit p
CirclePrint p
 
SUB PointInit0 (pthis AS Point)
Anonymous user