Partage
  • Partager sur Facebook
  • Partager sur Twitter

Question/precision sur les references

Sujet résolu
    24 août 2018 à 15:18:07

    Bonjour,

    Je suis en train de suivre le cours de C++.

    dans le chapitre "Les classes (1/2)" il y a cette fonction :

    void attaquer(Personnage &cible)

    d'après ce qui est dit le paramètre est une reference.

    Mais de ce que j'ai vu (et peut etre mal compris) plus tot ca devrait  etre "Personnage& cible" pour etre une reference, non ?

    si on écrit "Personnage &cible" c'est plutot demander l'adresse de cible (pour un pointeur).

    Une reference et une adresse c'est la meme chose ? Le placement de l'esperluette (&) n'a pas d'importance ?

    J'ai rien compris ?

    Merci de m'apporter vos lumieres

    -
    Edité par sylvain89 24 août 2018 à 15:21:56

    • Partager sur Facebook
    • Partager sur Twitter
      24 août 2018 à 16:03:36

      sylvain89 a écrit:

      Une reference et une adresse c'est la meme chose ? 

      Non

      sylvain89 a écrit:

      Le placement de l'esperluette (&) n'a pas d'importance ?

      Oui. (Et plus généralement, les espaces et retours a la ligne ne sont pas important en C++)

      sylvain89 a écrit:

      si on écrit "Personnage &cible" c'est plutot demander l'adresse de cible (pour un pointeur).

      & dans un type (par exemple dans la declaration d'une variable ou d'un parametre) = reference.

      & devant une variable = address-of

      • Partager sur Facebook
      • Partager sur Twitter
        24 août 2018 à 16:45:00

        OK merci, ca a l'air plus clair maintenant.

        Donc pour resumer dans une déclaration, on peut écrire les deux formes (type& truc) ou (type &truc) ca revient sensiblement au meme ?

        C'est un peu comme pour les pointeurs, si j'écris (type* truc) c'est similaire a (type *truc) lors d'une declaration.

        C'est juste si je fais des declarations multiples sur un seule ligne il vaut mieux utiliser la notation avec l'esperluette accolee a la variable (ou autre)

        ex:

        type &truc, &machin;

        C'est ca ?

        Merci.

        • Partager sur Facebook
        • Partager sur Twitter
          24 août 2018 à 16:49:56

          On ne fait plus de déclaration multiple sur une seule ligne en C++ moderne.

          Justement pour éviter ces embrouilles.

          • Partager sur Facebook
          • Partager sur Twitter
          Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
            24 août 2018 à 17:01:39

            Et plus généralement, en programmation "moderne", on ne se fait plus chier avec les syntaxes ambiguës : s'il y a risque d'erreur a la lecture ou la compréhension, on ne fait pas. C'est aussi simple que ca.
            • Partager sur Facebook
            • Partager sur Twitter

            Question/precision sur les references

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown