
Sasume :
En java il n'y a pas de mot-clé virtual![]()
Mais le fait de mettre virtual devant une fonction membre d'une classe produit le même comportement qu'en java![]()
Zephyr :
Bah la fonction ne peut pas retourner 0 si elle est templatée par un type non pointeur et non initialisable avec un entier, comme le compilo peut décider à la compilation si il accepte ou non un "templatage", il peut très bien déterminer laquelle choisir entre deux implémentations; je n'ai pas la réponse mais ça ne me semble pas tellement différent de n'importe quelle spécialisation de template ?
(accessoirement on m'a demandé de le faire, donc je pense que c'est faisable ^^)
Pollux :
cela dit, je ne sais pas exactement pourquoi tu fais ça
Link :Les classes Orange et Violet, c'était juste des exemples.
Généralement, pour des couleurs statiques, on utilise plutôt soit une enum, soit des objets statiques (comme en java ou en .Net).
Sasume :
Bah parce que le RTTI, c'est moche et ça va à l'encontre de la conception objet. Les alternatives de Pollux sont des conceptions relativement plus propres.
Jyaif
:Pollux :
cela dit, je ne sais pas exactement pourquoi tu fais ça
Je voulais faire ça parceque c'était la méthode qui demandait d'écrire le moins de code
nEUrOO
:Sasume :
Bah parce que le RTTI, c'est moche et ça va à l'encontre de la conception objet. Les alternatives de Pollux sont des conceptions relativement plus propres.
Certes, mais c'est exactement la meme chose dans les faits.
Autant utiliser un outil de C++.
Pollux
:Jyaif
:Pollux :
cela dit, je ne sais pas exactement pourquoi tu fais ça
Je voulais faire ça parceque c'était la méthode qui demandait d'écrire le moins de code
Je voulais dire "pour implémenter quoi dans ton code"![]()
spectras :
Oui, sans compter que l'activation des RTTI à la compilation ralentit fortement la manipulation des objets
Je pensais faire une classe DrawStandart qui ne ferait qu'implémenter draw, et du coup j'aurais juste à faire hériter MovingObject1 et StillObject1 de DrawStandart.Ce serait une grave erreur de conception. L'héritage représente la relation X est un Y. Il ne sert pas à faire de la réutilisation de code.
spectras :
Ce serait une grave erreur de conception. L'héritage représente la relation X est un Y. Il ne sert pas à faire de la réutilisation de code.