Pour accéder à une méthode : occurrence\methode()
Pour accéder à un attribut : *occurrence\attribut
Tout simplement...

Au Contraire, je trouve bizarre que j'ai gagner en performance en codant de manière OO. pourtant , d'après des dires , je devrais perdre en perf...erix14 a écrit :Je parlais non seulement du temps à coder ses fonctions : GetX(), SetX(val), GetY(), SetY(val), etc. Mais aussi, de l'énorme baisse de performance que cela implique... Surtout pour des applications 3D.Dr.Dri a écrit :Dans ce cas passe par une macro, transparent pour l'utilisateur sans les inconvénients des fonctions (ca doit pouvoir se bidouiller nan ?)
Mon pseudo vient de mon prénom Eric et de mon département le Calvados (14). Mais comme cette construction de pseudonyme n'est pas originale, et que donc Eric14 n'est jamais disponible, je l'ai changé en Erix14.Cpl.Bator a écrit :HS: Ton pseudo viens d'un missile anti char ?
ne dit pas ça !!erix14 a écrit :Vu qu'une normalisation de la POO en PureBasic n'intéresse pas grand monde
je pense que çà intéresse bcp de monde au contraire.erix14 a écrit :Vu qu'une normalisation de la POO en PureBasic n'intéresse pas grand monde, [...]
Non sa intéresse du monde et sa pourrait en intéresser plus si la gestion est simple.erix14 a écrit :Vu qu'une normalisation de la POO en PureBasic n'intéresse pas grand monde, cela restera entre nous
Code : Tout sélectionner
OpenFile(0, "...")
ligne.s = ReadString(0)
Code : Tout sélectionner
File MonFichier = File("...")
Ligne.s = MonFichier\ReadString()
Moi j'utilise cette méthode : Le programmeur peut entrer n'importe quelle valeur dans les attributs, ce sont les méthodes qui les utilisent qui en vérifier la validité... si cela engendre des problèmes elle retourne un code d'erreur. Pour la surcharge de celles-ci, je suis d'accord avec toi, mais perdre autant de puissance pour quelque chose qui sert pratiquement pasDr. Dri a écrit :Je comprends ta position sur les getAttribut et setAttribut parce je pensais comme toi au début. Cepandant après avoir étudié l'objet plus en profondeur on peut trouver l'intéret de telles fonctions...
1) de cette facon on ne connait pas la structure interne d'un objet, on se contente d'appeller ses méthodes.
2) si jamais une classe hérite d'une autre et que le traitement d'un des attributs diffère complètement, en surchargeant la fonction "get" et/ou "set" de cet attribut, c'est complètement transparent pour l'utilisateur.
Je tient à rapeller que la programation objet est plus complexe à court terme mais beaucoup plus facilement maintenable à long terme. En particulier avec les accesseurs (get et set) dans le cas de méthodes ou de classes abstraites par exemple.
Dri
Code : Tout sélectionner
XIncludeFile #PB_Compiler_Home+"Class\Personne_Class.pbi"
ClassEx(PersonneEx,Personne);{
Profession.s
CEx_(PersonneEx, Personne)()
AfficheProfession.s()
EndClassEx(PersonneEx,Personne);}
Constructor(PersonneEx));{
*This\nom = "inconnu"
*This\prenom = "inconnu"
*This\age = 0
*This\Profession = "inconnu"
EndConstructor(PersonneEx);}
Methode(PersonneEx,AfficheProfession,s));{
ProcedureReturn *This\Profession
EndMethode(PersonneEx,AfficheProfession);}
New(taPersonne,Personne)("Martin","Jean",32)
New(maPersonne,PersonneEx)()
*maPersonne\nom = "Dupond"
*maPersonne\prenom = "Pierre"
*maPersonne\age = 54
Debug maPersonne\Affiche()
Debug taPersonne\Affiche()
Debug maPersonne\AfficheProfession()