Oui j'avais vue sa c'est sympa mais après on s'éloigne beaucoup de la structure du BASIC.
Cpl.Bator a écrit :
MaClass::test()
Je ne comprends par pourquoi tu peut utilisé directement une méthode sans passer par un objet.
je vois plus dans ce sens :
Class MaClass
StaticProcedure test()
;pas de *this c'est une méthode statique qui dépend de la classe pas d'un objet
EndStaticProcedure
EndClass
Objet.Maclass
Objet\test()
StaticProcedure
"method" n'est pas plus approprié ?
En fait une méthode statique ne dépend pas d'un objet mais de la classe, en C++ je pense pas que cela existe par contre en JAVA on en abuse.
Par exemple une classe Math
la classe ne possède aucun attribut mais plein de méthode comme :
sqrt(eniter)
pow(entier, entier)
aucun attribut ? alors pourquoi faire une instance ?
c'est pourquoi on définit les méthodes en statique
Math::sqrt(entier, entier)
pourquoi faire une classe en pure on peut faire des procédures pour remplacer sa ?
juste pour avoir un code ne comportant que des classes ce qui permet de coder avec un diagramme de classe
http://fr.wikipedia.org/wiki/Unified_Modeling_Language
après pour la syntaxe Methode ou Procedure :s j'hésite encore
Cpl.Bator a écrit :
Abuse des macros pour ton précompilateur , utilise aussi "extends" "structureunion" pour faire vraiment de la poo
oui je veut un code optimisé alors un constructeur ou je fait qu'allouer de la mémoire inutile d'en faire une procédure par exemple.
Ou encore pourquoi pas des warpers optimisé :
Code : Tout sélectionner
Class Math
DeclareMethod ACos(Nombre.f) AS ACos(Nombre)
EndClass
Math::Acos(5)
Class Sprite
DeclareMethod NewSprite(...) AS createsprite(#pb_any, ...)
DeclareMethod DisplaySprite(..) As DisplaySprite(..)
EndClass
*monsprite.Sprite = New Sprite(...)
*monsprite.DisplaySprite(..) ;deviendra DisplaySprite(*monsprite, ..) une fois compilé
KarLKoX a écrit :C'est plutôt pas mal au niveau de l'utilisation, le structureunion a clairement sa place comme l'a dit notre Capitaine
Le truc que j'aurais bien aimé avoir c'est la généricité (classe générique en C#/Java, Template en C++) histoire d'ajouter un niveau d'abstraction supplémentaire.
j'ai pensé a la généricité mais je n'ai pas retenue cette idée pour des raisons techniques et je vient de calculer que avec structure Union c'est peut être possible l'ennuie viendra peut être du passage de paramètre d'une méthode ex mamethode(generique.E, nongenerique.type).
Dans tout les cas il faudra les sources de la classe pour utiliser une classe avec la généricité, donc pas de lib statique.