@mindphazer
Cette histoire de jus me fait penser à
un extrait du film "Las Vegas parano" !.
@threedslider
Et combien de bêtises anodines et innocentes ont sauvé la planète pour que nous y vivions ? Sûrement plus que considéré...
Pour petite conclusion,
*this est une variable utilisateur structurée. Son nom est une pure convention répandue dans divers langages autres que pureBasic. Et son existence est liée à la poo.
Il est omniprésent dans les procédure baptisées "méthodes". Comme chaque maison a sa clef, chaque procédure a son pointeur
*this.
Code : Tout sélectionner
Structure voiture
couleur.s
EndStructure
Procedure voitureCreate()
ProcedureReturn AllocateMemory(SizeOf(voiture) )
EndProcedure
Define *voiture.voiture = voitureCreate()
Lors de la création d'une instance d'un objet [b[voiture[/b], la valeur de
*this, dans les procédures, prendra la valeur de
*voiture, afin que chaque procédure puisse avoir accès aux données de la structure pointée par
*voiture.
Code : Tout sélectionner
Structure voiture
couleur.s
EndStructure
Procedure voitureCreate()
ProcedureReturn AllocateMemory(SizeOf(voiture) )
EndProcedure
Procedure voitureChangeCouleur(*this.voiture, couleur.s)
*this\couleur = couleur
EndProcedure
Define *voiture.voiture = voitureCreate()
voitureChangeCouleur(*voiture, "noire")
@jph
Tu dis que tu vois un pointeur qui n'est pas initialement dans le code source SB : est-ce que, déjà, la fonction de création (instanciation) retourne une valeur récupérable ?
Comme ici, où je récupère cette valeur :