Simple Objects

Share your advanced PureBasic knowledge/code with the community.
deathmx
User
User
Posts: 27
Joined: Mon Feb 26, 2018 3:14 am

Simple Objects

Post 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 "#######"



User avatar
mk-soft
Always Here
Always Here
Posts: 5335
Joined: Fri May 12, 2006 6:51 pm
Location: Germany

Re: Simple Objects

Post by mk-soft »

Show OOP-BaseClass (Signatur)
My Projects ThreadToGUI / OOP-BaseClass / EventDesigner V3
PB v3.30 / v5.75 - OS Mac Mini OSX 10.xx - VM Window Pro / Linux Ubuntu
Downloads on my Webspace / OneDrive
Post Reply