PureBasic et la Programmation Orientée Objet

Synthèse et notation

Avant d'aborder la suite, dans laquelle nous allons assoire notre implémentation d'un objet en PureBasic, je vous propose de faire une synthèse de tout ce qui vient d'etre vu. L'implémentation que nous venons de voir d'un objet se présente sous la forme suivante :

  • Une Interface,
  • Une Classe (concrète/abstraire) regroupant la définition des méthodes,
  • Un Constructeur muni d'une routine d'initialisation des attributs,
  • Un Destructeur.

Le tableau suivant synthétise ce qu'est notre Objet en PureBasic.

  • Le mot Classe fait référence au nom de la Classe (ex : Methd_Classe)
  • Le mot ClasseMere fait référence au nom de la Classe Mère lors d'un héritage (ex : Methd_ClasseMere)
  • Les expressions entre accolades { } sont à utiliser lors d'un héritage

Interface

Interface <Interface> {Extends <InterfaceMere>}
Methode1()
[Methode2()]
[Methode3()]

EndInterface
Classe

Structure <Classe> {Extends <ClasseMere>}
*Methods
[Attribut1]
[Attribut2]

EndStructure

Procedure Methode1(*this.Classe, [arg1]…)

EndProcedure

Procedure Methode2(*this.Classe, [arg1]…)

EndProcedure

Structure <Mthds_Classe> {Extends <Mthds_ClasseMere>}
*Method1
*Method2

EndStructure

Procedure Init_Mthds_Classe(*Mthds.Mthds_Classe)
{Init_Mthds_ClasseMere(*Mthds)}
*Mthds\Method1 = @Methode1()
*Mthds\Method2 = @Methode2()

EndProcedure

Mthds_Classe.Mthds_Classe
Init_Mthds_Classe(@Mthds_Classe)

Constructeur

Procedure Init_Mbers_Classe(*this.Classe, [var1]…)
{Init_Mbers_ClasseMere(*this)}
[*this\Attibut1 = var1]

EndProcedure

Procedure New_Classe([var1]…)
Shared
Mthds_Classe
*this.Classe = AllocateMemory(SizeOf(Classe))
*this\Methods = @Mthds_Classe
Init_Mbers_Classe(*this, [var1]…)
ProcedureReturn *this
EndProcedure

Destructeur Procedure Free_Classe(*this)
FreeMemory(*this)
EndProcedur

Voici un exemple de code où l'héritage est utilisé:

Ex:POO_Heritage.pb

Sommaire

[1-2-3-4-5-6-7-8-9]
Retour en haut de page