Notion de liaison et liaisons usuelles en C++

a marqué ce sujet comme résolu.

Tout le monde se secoue ! :D

J’ai commencé (il y a 11 minutes) la rédaction d’un tutoriel au doux nom de « Notion de liaison et liaisons usuelles en C++ » et j’ai dans l’objectif de proposer en validation un texte aux petits oignons. Je fais donc appel à votre bonté sans limite pour dénicher le moindre pépin, que ce soit à propos du fond ou de la forme. Vous pourrez consulter la bêta à votre guise à l’adresse suivante :

Merci !

Un article intéressant, je n’avais jamais entendu parler de Tag Dispatching. Pour ma part, rien à redire sur le fond.

J’en profite pour signaler ci-dessous les quelques erreurs que j’ai trouvées.

Notion de liaison

  • 2ème paragraphe : "La liaison, dispatch en anglais ne doit pas être confondue […]" (il manque un e).
  • Juste à la suite : la forme "malgré que" n’existe pas, on dit "bien que" (ou alors "malgré les nombreux articles ou livres dans lesquels le terme de binding remplace et / ou aggrège celui de dispatch").
  • Même phrase : "agrège" et non "aggrège".
  • Dans ce même paragraphe : "dispatch" apparaît une seule fois sans être en italique (dans d’autres paragraphes aussi je crois).
  • 2ème paragraphe après "Liaison statique ou dynamique" : "Il y a une liaison dynamique" (il manque un e).
  • Avant le bloc de code qui suit : "le comportement limité de la liaison en C++." (il y a un espace inutile entre "C++" et le point).
  • Plus loin : "Ici, aucun souci" (pas de s à souci).
  • "en réalité la liaison s’est effectuée en run time." (et non "c’est effectué").
  • "Le Single Dispatch fait que la résolution ne permet pas de trouver la bonne implémentation entre WideParking::park(const Vehicle&) const et WideParking::park(const Plane&) const […]" (il manque le nom de la méthode).
  • Même paragraphe : "Là où le bât blesse" (il manque l’accent sur le a).
  • Même paragraphe : "Cependant, le standard guide suffisamment" (et non "suffisemment").
  • Le double dispatch en C++ : "sinon le surcoût en termes de code" (il manque un s à "terme"). Revient aussi juste avant la conclusion.
  • Deux paragraphes plus loin : "tout en lui donnant une référence sur lui-même." (il manque le trait d’union à "lui-même").
  • Il y a un bloc de code qui débute par #!c++, est-ce voulu ? (C’est d’ailleurs le seul bloc où il y a un espace avant les points-virgules.)

Tag Dispatching

  • "Présentation & mise en place" (pourquoi un M majuscule ?).
  • "tandis que la seconde fournit" (il manque un t à "fourni").
  • Fin du paragraphe suivant : "etc" doit toujours est suivi d’un point (c’est une abréviation).
  • Dans les fonctions Unlock(), tu utilises une fois le terme "unlock", une fois "delock".
  • Dans la fonction Algo::operator(), "Quelques étapes d’initialisation" (et non "initiatialisation"). Revient plusieurs fois.

La thèse de Jim O Coplien a l’avantage d’être en libre accès, après, cela peut valoir le coup de citer le livre qui en a été tiré: "Multiparadigm Design in C++" (IIRC)

Tous le laïus sur dispatch vs binding me dit quelque chose. J’ai l’impression de l’avoir déjà lu quelque part. Je ne sais plus si j’ai déjà lu cet article ou s’il y a réutilisation de choses d’ailleurs.

Je n’aurai pas dit que l’émulation du dispatch multiple était facile. Les visiteurs, c’est tordu, et les autres techniques sont loin d’être triviales. Après, le dispatch simple est un plaie qui impacte beaucoup de langages plus ou moins vaguement OO, et cela se voit rien qu’au choix de syntaxe. À partir du moment où l’on a un o.m(b), au lieu d’un f(a,b) ou d’un (f a b), on s’oriente automatiquement vers un dispatch simple.

On n’appelle pas une méthode depuis une instance de classe, mais sur. Le depuis laisse sous-entendre que ce n’est que depuis d’autres méthodes d’une même classe que l’on peut appeler celles d’une classe.

Je ne dirai pas que le visiteur est apparu pour résoudre le problème. Je trouve plutôt qu’il a été détourné pour résoudre ce problème. (Bon je n’ai pas mon GoF sur moi, je ne sais plus comment s’était formulé dedans). Le visiteur est orienté pour résoudre des doubles dispatchs asymétriques: petites hiérarchie finie de classes visitables, beaucoup de classes (nombre inconnu à l’avance) pouvant visiter. L’exemple classique des collisions dans les jeux de type asteroid est lui totalement symétrique – même si le nombre d’éléments est assez limité.

Dans les codes, je vois des pointeurs. Cela veut dire que l’objet peut être nul ? Si non, alors c’est une référence qu’il faut.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte