Partage
  • Partager sur Facebook
  • Partager sur Twitter

C++ accéder aux fonctions des objets d'une list

Sujet résolu
    17 juin 2018 à 12:17:36

    Bonjour,

    je voudrai savoir s'il est possible d'accéder aux fonctions d'un objet présent dans une list et cela depuis un autre objet.

    le principal intérêt est de vérifier que j'effectue bien le remplisage de ma library.

    pour le moment j'implémente le code suivant :

    void LibraryTab::displayAllTab()
    {
        for (it=m_list_Tab.begin(); it!=m_list_Tab.end(); ++it)
        {
            *it.displayTab();
        }
    } 

    mais celui-ci ne passe pas à la compilation. j'obtiens le message d'erreur suivant :

    ~\File_Analyzer\LibraryTab.cpp|_|error:

    'std::__cxx11::list<Tab>::iterator {aka struct std::_List_iterator<Tab>}' has no member named 'displayTab'|

    une âme charitavle pour me donner un petit coup de pouce ? Merci d'avance.

    • Partager sur Facebook
    • Partager sur Twitter
    EL M K.
      17 juin 2018 à 12:56:24

      Lu'!

      C'est en raison de la priorité des opérateurs. L'opérateur "." est plus prioritaire que l'étoile. Plusieurs solutions :

      • parenthéser : (*it).machin();
      • utiliser l'opérateur flèche : it->machin();
      • faire beaucoup plus simple :
        for(auto const& object : my_list)
          object.machin();
      • Partager sur Facebook
      • Partager sur Twitter

      Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C

        17 juin 2018 à 13:21:49

        Merci pour les conseilles, j'ai réussi à mettre en application les deux premiers mais pas le 3éme.

        En faisant l'analogie avec mon exemple, "object" représente la Library ou la Tab ?

        j'ai essayé les deux syntaxes sans succés...:euh:

        • Partager sur Facebook
        • Partager sur Twitter
        EL M K.
          17 juin 2018 à 21:50:32

          Bonjour,

          La troisième est une syntaxe apparue depuis le C++11, il faut un C++ à jour ou activer sa capacité C++11.
          Si en levant le mot const ça fonctionne, c'est que la fonction displayTab() n'est pas déclarée const, ce qui est une autre erreur.
          object représente un tab.

          • Partager sur Facebook
          • Partager sur Twitter

          En recherche d'emploi.

          C++ accéder aux fonctions des objets d'une list

          × 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