Partage
  • Partager sur Facebook
  • Partager sur Twitter

affectation à un retour de fonction

    19 mars 2019 à 17:48:45

    Bonjour,

    J'ai longuement cherché, mais je n'ai pas trouvé ce que cherche, alors je suis désolé d’avance si ma question a déjà été posé.

    Donc voilà j'aimerai beaucoup, dans mon code c++,faire ceci.

    f()=x;

    f qui est une fonction renvoyant un pointeur et x un autre pointeur.

    Les types de retour de f et x sont identiques.

    Ma fonction f est une fonction membre d'une classe qui a pour but de retourner le pointeur d'une variable membre de la même classe.(un getter bref)

    Et donc dans ce pointeur j'aimerai mettre x sans passer par un setter.

    Je ne veux pas faire de copie de ce qui pointé, mais juste mettre l’adresse de x dans le pointeur retourné.

    Bref un peux comme ceci:

    f()=x

    Merci d’avance.

    • Partager sur Facebook
    • Partager sur Twitter
      19 mars 2019 à 18:08:21

      >Et donc dans ce pointeur j'aimerai mettre x sans passer par un setter.

      Why ?

      Si on a pris la peine de construire un getter autour de ce membre, c'est qu'il ne peut être accéder via un simple champ public. Si ce n'est pas le cas, virez moi ce getter tout moisi et puis c'est tout.

      Donc, soit il n'y a pas de getter soit il faut un setter, point barre.

      Ce qui doit être à gauche d'une affectation ("=") est, pour simplifier, une lvalue (pour valeur à gauche (left)), donc pas une variable temporaire.

      Ce qui doit être à gauche d'une affectation ("=") est, pour simplifier, une rvalue (pour valeur à droite (right)), donc potentiellement une variable temporaire comme la valeur retournée par votre fonction, ou une simple variable locale, un champ, etc....

      Il faut donc convertir votre rvalue en lvalue, en l'affectant à une variable locale, par exemple.

      auto tmp = f();
      tmp = x;

      Mais bon, la conception de base me semble pas super carrée.

      • Partager sur Facebook
      • Partager sur Twitter
      Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
        19 mars 2019 à 18:20:12

        OK merci.

        C'est juste que quand j'écris un algo sur papier.

        ben j'écris comme cela, pour justement dire que je modifie ma valeur.

        Mais bon si cela est faisable que par un setter j'utiliserai les setter, toute façon à la fin sa changera rien à mon truc.

        Merci comme même. :)

        • Partager sur Facebook
        • Partager sur Twitter
          19 mars 2019 à 18:41:43

          >Mais bon si cela est faisable que par un setter

          Non, mais si on prend la peine de faire un getter, il est plus que recommander (mais pas obligatoire) de faire un setter pour le changer le champ putatif.

          Mais bon, c'est un peu un faux débat. Il faut penser les classes en tant que fournisseur de services, donc généralement totalement opaque en terme de données que d'une capsule comportement + données des vieux cours de POO.

          Donc, à la fin, ni setter ni getter.

          • Partager sur Facebook
          • Partager sur Twitter
          Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.

          affectation à un retour de fonction

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          • Editeur
          • Markdown