Moumou
:Je ne comprends pas l'intérêt d'aliaser une classe si on compte l'utiliser avec la même sémantique. Prenons l'exemple d'une liste de couples. Si tu veux l'utiliser en tant que liste de couples, et uniquement en tant que tel (par exemple pour calculer sa longueur), alors je ne vois pas l'intérêt de l'aliaser.
Ne pas dupliquer l'information : de même que, je sais pas, en C tu évites de dupliquer l'information qu'est la longueur d'un buffer de taille fixe et tu utilises un #define plutôt qu'une constante hardcodée...
Si tu veux l'utiliser en tant que table d'associations, alors moralement tu ne manipules plus une liste de couples, mais une implémentation particulière de l'interface "table d'associations".
Ah oui, on est bien d'accord, mais ce n'est pas de ça qu'on parle
Et si tu voulais en faire une table d'associations, tu aurais sans doute qqs méthodes à rajouter et tout ça, et d'autres à supprimer pour maintenir les invariants qui t'intéressent...
[
EDIT : ah, je viens de relire
./24, et effectivement j'avais pas fait gaffe à la dernière phrase de Pen^2 : en effet soit on ne veut pas cacher le type et c'est juste une abréviation [publique et immuable] du vrai type, qui reste cependant connu de l'utilisateur de la classe, soit on veut cacher le type et alors il faut adopter ta solution -- enfin bref on parlait pas de la même chose
]
Si tu veux faire un alias juste pour réduire la quantité de code à écrire, alors d'une part ton IDE est naze, et d'autre part un simple préprocesseur peut s'en occuper avant la compilation.
- qu'est-ce que l'IDE apporterait ? 1] si je veux changer le type d'une variable qui est recopié un peu partout, comment l'IDE peut savoir quels endroits devraient effectivement être changés ? et 2] ça n'améliorerait pas la lisibilité
- oui, exactement (modulo le fait que les typedefs en question devraient avoir une portée analogue à celle des variables), c'est juste que c'est dommage que ça n'existe pas en standard...