onurLe 05/09/2007 à 17:46
La surcharge d'opérateur est... comment dire... la cerise sur le gateau du C++. C'est trop bon.
J'utilisais une libriairie de résolution de programme linéaire. Ils ont TOUT surchargé (pas que les opérateurs, mais je vais y venir) les variables de décision par exemple, c'est les variables que le solveur va résoudre, on dérive de leur classe pour ajouter des membres si on veut.. la beauté de la prog OO quoi.
Maintenant pour définir une expression linéaire, vu qu'ils ont surchargé les opérateurs, on peut écrire un truc du genre:
IloNumExpr expr = x[0] + 2*x[1] + 3*x[2]
et en java, on doit écrire:
IloNumExpr expr = cplex.sum(x[0], cplex.prod(2.0, x[1]),cplex.prod(3.0, x[2]));
C'est vrai qu'on sait pas du tout ce qui se passe derrière quand on écrit x+y.. Mais j'ai une petite idée, ca doit le considérer comme une addition. Tout comme je me douterais que cplex.sum fait une addition, mais on doit de toute façon lire les spéc. avant d'utiliser une classe.
Dites moi en quel autre langage on peut faire des choses aussi belles? En .NET aussi, on peut écrire aussi joliment qu'en C++, parce que surcharge des opérateurs