Polymorphism: Difference between revisions
Content added Content deleted
Line 30: | Line 30: | ||
DECLARE SUB CircleSetR (pthis AS Circle, r0 AS INTEGER) |
DECLARE SUB CircleSetR (pthis AS Circle, r0 AS INTEGER) |
||
DECLARE SUB CirclePrint (pthis AS Circle) |
DECLARE SUB CirclePrint (pthis AS Circle) |
||
DECLARE SUB PolyPrint (pthis AS ANY, type%) |
|||
TYPE Point |
TYPE Point |
||
Line 39: | Line 40: | ||
r AS INTEGER |
r AS INTEGER |
||
END TYPE |
END TYPE |
||
DIM SHARED POINT%, CIRCLE% |
|||
POINT% = 0 |
|||
CIRCLE% = 1 |
|||
DIM p AS Point |
DIM p AS Point |
||
Line 44: | Line 49: | ||
PointInit p |
PointInit p |
||
⚫ | |||
REM No virtual function call possible |
|||
PointPrint p |
PointPrint p |
||
⚫ | |||
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 |
|||
⚫ | |||
⚫ | |||
SUB PointInit0 (pthis AS Point) |
SUB PointInit0 (pthis AS Point) |