BCXLogo   BCX Console Demonstration Program S154.bas

 '===============================================================
 ' Semi-OOP implementation for BCX by Kevin Diggins Dec 01, 2003
 '===============================================================
 
 TYPE FOO
   MyVar
   FUNCTION Squared (THIS AS FOO_CLASS) AS INTEGER
   FUNCTION Cubed   (THIS AS FOO_CLASS) AS INTEGER
   FUNCTION TimesX  (THIS AS FOO_CLASS, X AS INTEGER) AS INTEGER
 END TYPE
 
 DIM Me  AS FOO : Initialize ( &Me, 3 )
 DIM You AS FOO : Initialize ( &You, 4 )
 
 CLS
 
 PRINT "================="
 PRINT "Me.Squared  "  , Me.Squared  (&Me)
 PRINT "Me.Cubed    "  , Me.Cubed    (&Me)
 PRINT "Me.TimesX   "  , Me.TimesX   (&Me,100)
 PRINT "================="
 PRINT "You.Squared "  , You.Squared (&You)
 PRINT "You.Cubed   "  , You.Cubed   (&You)
 PRINT "You.TimesX  "  , You.TimesX  (&You,100)
 PRINT "================="
 
 PRINT "Changing .MyVar in Me and You"
 
 Me.MyVar = 6
 You.MyVar = 7
 
 PRINT "================="
 PRINT "Me.Squared  "  , Me.Squared  (&Me)
 PRINT "Me.Cubed    "  , Me.Cubed    (&Me)
 PRINT "Me.TimesX   "  , Me.TimesX   (&Me,100)
 PRINT "================="
 PRINT "You.Squared "  , You.Squared (&You)
 PRINT "You.Cubed   "  , You.Cubed   (&You)
 PRINT "You.TimesX  "  , You.TimesX  (&You,100)
 PRINT "================="
 
 SUB Initialize (THIS AS FOO_CLASS, b AS INTEGER)
   WITH THIS
     .MyVar   =       b
     .Squared = Squared
     .Cubed   =   Cubed
     .TimesX  =  TimesX
   END WITH
 END SUB
 
 FUNCTION Squared (THIS AS FOO_CLASS)
   FUNCTION = THIS.MyVar * THIS.MyVar
 END FUNCTION
 
 FUNCTION Cubed (THIS AS FOO_CLASS)
   FUNCTION = THIS.MyVar * THIS.MyVar * THIS.MyVar
 END FUNCTION
 
 FUNCTION TimesX (THIS AS FOO_CLASS, X)
   FUNCTION = THIS.MyVar * X
 END FUNCTION