Voir le sujet précédent :: Voir le sujet suivant |
Auteur |
Message |
kungfu-sheep Anomalie floodiforme

Inscrit le: 14 Avr 2011 Messages: 1846 Sujets: 119 Spécialité en worldedit: fonctions paramétriques, équation de mouvement.
|
Posté le: 16/08/14 15:58 Sujet du message: surcharge opérateur |
|
|
est-il possible en jass ou toute autre version du jass de faire de la surcharge d'opérateur ? ou simplement faire ça :
Jass: | function machin takes integer i = 0 returns nothing
blablabla
endfunction |
j'ambitionne surement trop :p d'autant plus que ça serait juste pour "la forme", trop de paramètre sur une fonction qui des fois sont pas indispensable mais intéressant. _________________
22:27:43<Seiraw> Bah y a deux genre de personnes
22:27:57<Seiraw> les soumis et les soumises |
|
Revenir en haut |
|
 |
Sapeur-Goblin Floodeur prématuré
Inscrit le: 14 Oct 2009 Messages: 719 Sujets: 40 Spécialité en worldedit: Les bugs Médailles: 1 (En savoir plus...)
|
Posté le: 16/08/14 16:46 Sujet du message: |
|
|
Tu ne peux pas mettre de paramètres par défauts dans les fonctions.
Par contre en vJass, dans les struct, il y a une pseudo surcharge d'opérateurs possible.
Exemples :
Jass: | method operator jesaispasquoi takes nothing returns integer
return jesaispasquoiValue
endmethod |
Utilisation : instance.jesaispasquoi
Jass: | method operator jesaispasquoi= takes integer newValue returns nothing
set jesaispasquoiValue = newValue
endmethod |
Utilisation : set instance.jesaispasquoi = newValue
Jass: | method operator [] takes type t returns untruc
return unevaleurdetableau_ouautre
endmethod |
Utilisation : instance[t]
Jass: | method operator []= takes type t, autretype newValue returns nothing
//Stuff
endmethod |
Utilisation : set instance[t] = newValue
Ce dernier opérateur marche aussi en static, ce qui permet de faire quelques trucs sympas en les couplant (comme ça par exemple). _________________
|
|
Revenir en haut |
|
 |
kungfu-sheep Anomalie floodiforme

Inscrit le: 14 Avr 2011 Messages: 1846 Sujets: 119 Spécialité en worldedit: fonctions paramétriques, équation de mouvement.
|
Posté le: 16/08/14 17:20 Sujet du message: |
|
|
mouais, ça me sera pas utile :p tampis ^^ _________________
22:27:43<Seiraw> Bah y a deux genre de personnes
22:27:57<Seiraw> les soumis et les soumises |
|
Revenir en haut |
|
 |
Ayane Bot administrateur

Inscrit le: 17 Sep 2007 Messages: 2012 Sujets: 49
Médailles: 2 (En savoir plus...)
|
Posté le: 16/08/14 21:02 Sujet du message: |
|
|
La surcharge d'opérateur c'est lorsqu'on définis d'autres actions pour un opérateur.
La surcharge de fonction c'est lorsqu'on définis plusieurs fonctions avec le même nom et le même type de retour (dans des cas particuliers elles peuvent également avoir les mêmes types de paramètres).
Ici c'est ce que l'on appel un paramètre par défaut, chose qui si un langage ne le supporte pas peut être effectué avec de la surcharge de fonction.
La surcharge de fonction a été rendue possible en C++ en ajoutant au symbole le type des paramètres, par exemple pour une fonction:
void foo(int a);
En C on aura le symbole foo.
En C++ on aura le symbole foo_int_.
D'où la nécessité à partir d'un compilateur C++ qui appel des fonctions C de spécifier les déclarations pour une librairie statique C avec extern(C).
Jass est un langage inspiré du BASIC qui se veut très simple, mis à part un pseudo garbage-collector, il n'intègre pas de fonctionnalités que l'on peut trouver dans des langages haut-niveau.
Après il est possible de le faire avec un préprocesseur. _________________
|
|
Revenir en haut |
|
 |
kungfu-sheep Anomalie floodiforme

Inscrit le: 14 Avr 2011 Messages: 1846 Sujets: 119 Spécialité en worldedit: fonctions paramétriques, équation de mouvement.
|
Posté le: 17/08/14 00:19 Sujet du message: |
|
|
oui je sais que j'ai montré l'exemple de paramètre par défaut, mais la surcharge d'opérateur m'intéressait encore plus. (j'ai dit "au moins ça")
par contre j'ai pas compris ton exemple de foo :p _________________
22:27:43<Seiraw> Bah y a deux genre de personnes
22:27:57<Seiraw> les soumis et les soumises |
|
Revenir en haut |
|
 |
|