Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Poiteurs sur fonction]Comment les utiliser?

Sujet résolu
    24 juin 2008 à 16:17:51

    Bonjour a tous.

    Je tente d'utiliser des pointeurs sur fonction.

    j'ai donc une class, possedant une methode et un attribut ( pointeurs sur fonction)

    mais lorsque je veux utliser mon pointeur sur fonction ca passe pas.

    le header (edulcorée)
    class Face
    
    {public:
                    Face( );
    		int ab (int a, int b)const;
    		int (Face::* haha)(int a, int b) const;
                    void test();
    
    }
    


    le cpp (de meme)
    Face::Face()
    {
    
    			haha=&Face::ab;
    
    }
    
    int Face::ab(int a, int b)const
    {return a+b;}
    
    void Face::test()
    {
    	haha( 1,2);
    }
    

    et les erreurs:
    Compiling C + + (in  mode) Face.cpp...
    Face.cpp: In member function «void Face::test()»:
    Face.cpp:165: erreur: must use «.*» or «->*» to call pointer-to-member function in «((const Face*)this)->Face::haha (...)»
    make: *** [Face.i686-pc-linux-gnu..o] Erreur 1

    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      24 juin 2008 à 16:28:13

      Faudrai p-e être penser à mater son code 2 seconde avant de poster.
      void Face::test()
      {
      haha( 1,2);
      }
      
      • Partager sur Facebook
      • Partager sur Twitter
        24 juin 2008 à 16:45:30

        j'avai un param de trop j'etais en train d'editer.
        J'ai juste reecrit un bout de code pour simplifier le bordel.
        Meme avec ca d'ailleurs l'erreur est la meme.
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          24 juin 2008 à 17:00:30

          Trouvé:
          (this->*haha)( 1,2);
          
          • Partager sur Facebook
          • Partager sur Twitter
            24 juin 2008 à 17:31:29

            merci beaucoup ca marche
            • Partager sur Facebook
            • Partager sur Twitter

            [Poiteurs sur fonction]Comment les utiliser?

            × 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