tasks a-s
This commit is contained in:
parent
47bf37c096
commit
b83f433714
12433 changed files with 156208 additions and 123 deletions
28
Task/Polymorphic-copy/BBC-BASIC/polymorphic-copy.bbc
Normal file
28
Task/Polymorphic-copy/BBC-BASIC/polymorphic-copy.bbc
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
INSTALL @lib$ + "CLASSLIB"
|
||||
|
||||
REM Create parent class T:
|
||||
DIM classT{array#(0), setval, retval}
|
||||
DEF classT.setval (n%,v) classT.array#(n%) = v : ENDPROC
|
||||
DEF classT.retval (n%) = classT.array#(n%)
|
||||
PROC_class(classT{})
|
||||
|
||||
REM Create class S derived from T, known only at run-time:
|
||||
RunTimeSize% = RND(100)
|
||||
DIM classS{array#(RunTimeSize%)}
|
||||
PROC_inherit(classS{}, classT{})
|
||||
DEF classS.retval (n%) = classS.array#(n%) ^ 2 : REM Overridden method
|
||||
PROC_class(classS{})
|
||||
|
||||
REM Create an instance of class S:
|
||||
PROC_new(myobject{}, classS{})
|
||||
|
||||
REM Now make a copy of the instance:
|
||||
DIM mycopy{} = myobject{}
|
||||
mycopy{} = myobject{}
|
||||
PROC_discard(myobject{})
|
||||
|
||||
REM Test the copy (should print 123^2):
|
||||
PROC(mycopy.setval)(RunTimeSize%, 123)
|
||||
result% = FN(mycopy.retval)(RunTimeSize%)
|
||||
PRINT result%
|
||||
END
|
||||
Loading…
Add table
Add a link
Reference in a new issue