par exemple , voici un code en pseudo c++
Code : Tout sélectionner
class PERSONNAGE
{
SetName(Name$)
GetName.s()
Name$
}
PERSONNAGE::SetName(Name$)
{
*This\Name$ = Name$
}
PERSONNAGE::GetName.s()
{
ProcedureReturn *This\Name$
}
il n'y a pas de surchage de fonctions ou autre , mais c'est quand même moins long de faire du pseudo c++ que cela :
(code générer via l'utilitaire)
Code : Tout sélectionner
;******************************************************************
; Object-oriented programming to Purebasic Converter
;
; Par Cpl.Bator
;
;******************************************************************
;-Constructor(s) & Destructor(s)
; ----------------------------------------------------------------
Macro New_PERSONNAGE(Pointeur)
*Pointeur_.PERSONNAGE_=AllocateMemory(SizeOf(PERSONNAGE_))
*Pointeur_\Vtable=?Vtable_PERSONNAGE
Pointeur.PERSONNAGE=@*Pointeur_\Vtable
EndMacro
; ----------------------------------------------------------------
Macro Free_PERSONNAGE(Pointeur)
Pointeur#_.Class#_=Pointeur
FreeMemory(Pointeur)
EndMacro
; ----------------------------------------------------------------
;-Interfaces
Interface PERSONNAGE
SetName(Name$)
GetName.s()
EndInterface
; ----------------------------------------------------------------
; ----------------------------------------------------------------
;-Structures
Structure PERSONNAGE_
Vtable.l
Name$
EndStructure
; ----------------------------------------------------------------
; ----------------------------------------------------------------
;-Methodes
Procedure SetName(*This.PERSONNAGE_,Name$)
*This\Name$ = Name$
EndProcedure
; ----------------------------------------------------------------
Procedure.s GetName(*This.PERSONNAGE_)
ProcedureReturn *This\Name$
EndProcedure
; ----------------------------------------------------------------
; ----------------------------------------------------------------
;-DataSections
DataSection
VTable_PERSONNAGE:
Data.l @SetName(),@GetName()
; ----------------------------------------------------------------
EndDataSection
; ----------------------------------------------------------------
Code : Tout sélectionner
IncludeFile "Personnage.pbc_Out.pbi"
New_PERSONNAGE(A)
A\SetName("Fred")
Debug A\GetName()
je dis pseudo code c++ , car ce n'est pas du c++, mais du c++ mélangé à du PureBasic se qui donne du pb++
j'ai fournis 2 exemple pour le moment.
Linux :
File:1->oop-pb.tar.gz
Ouvrez une console, allez dans le répertoire ou se trouve oop-pb
puis :
il va générer MonFichier.pbc_Out.pbi si il n'y a pas d'erreurs.$ ./oop-pb MonFichier.pbc
je continue à améilliorer l'utilitaire , et si vous trouvez des bugs , faite passé l'info
Windows:
pas encore...