Page 1 of 1

Simple Objects

Posted: Mon Feb 26, 2018 4:21 am
by deathmx
I find this to be a pretty simple way to make Objects :)
Anyone have something a little more Efficient?

Code: Select all





DeclareModule SimpleObject
  
  Interface _
    Add(Number)
    Show()
  EndInterface
  
  Structure _Structure
    *Vtable
    name.s
     x.i
     y.i
  EndStructure
   
   Declare create(name.s)
EndDeclareModule



Module SimpleObject
  
  Procedure create(name.s)
    *new._Structure = AllocateStructure(_Structure)
    *new\Vtable = ?Vtable
    *new\name = name
    *new\x = 10
    *new\y = 20
    ProcedureReturn *new
  EndProcedure
  
  Procedure add(*self,Number)
    *this._Structure = *self
    *this\x + Number
    *This\y + Number
  EndProcedure
  
  Procedure Show(*self)
    *this._Structure = *self
    Debug "Name" + *this\name
    Debug "x:" + Str(*this\x)
    Debug "y:" + Str(*this\y)
    Debug "---------"
  EndProcedure
  
  
  
  DataSection
    Vtable:
    Data.i @add(), @show()
  EndDataSection
  
EndModule


myobject1.SimpleObject::_ = SimpleObject::create("Blue Elephant")
myobject2.SimpleObject::_ = SimpleObject::create("Orange Apple")

myobject1\Show()
myobject1\Add(10)


myobject2\Show()
myobject2\Add(50)

Debug "#######"
myobject1\Show()
myobject2\Show()
Debug "#######"




Re: Simple Objects

Posted: Mon Feb 26, 2018 5:24 pm
by mk-soft
Show OOP-BaseClass (Signatur)