VIII - Types abstraits de données
1. L'horloge (version 1)
Haut de la page
2. L'horloge (version 2)
Haut de la page
3. L'horloge (version 3)
3.1. Arité, priorité, ordre d'évaluation
On ne peut pas changer:
- Arité : binaire vs unaire
- Priorité a + b * c --> a + (b * c)
- Ordre d’évaluation a + b + c --> (a + b) + c
3.2. Redéfinition d'un opérateur
2 options:
1. Dans une méthode
a + b => a.operator+(b)
- a devient le this
- b est le second opérande dans une opération binaire
2. Dans une fonction
a + b => operator+(a,b)
- a et b sont tous les deux des arguments
Dans les deux cas, les arguments (b pour dans une méthode, a et b pour dans une fonction) peuvent faire l'objet de conversion automatique.
Les deux versions sont exclusives (ne peuvent être définies en même temps.
3.3. Exécution d'une opération
- transmmettre les opérandes
- effectuer l'opération
- retourner le résultat (dans une variable anonyme)
- effectuer l'affectation (=)
- détruire la variable anonyme
Haut de la page
4. Opérateur = et conversion vers les types primitifs
Les seules méthodes qui sont générées automatiquement sont le constructeur copieur et l'opérateur =
Haut de la page
5. Construction et destruction des types
Haut de la page
6. Le sac
Haut de la page
7. Itérateur de sac
Haut de la page
8. La promotion des types
Haut de la page