Partage
  • Partager sur Facebook
  • Partager sur Twitter

Pointeur de méthodes statics

    9 mai 2008 à 22:23:27

    Bonsoir tout le monde

    J'essaye d'envoyer un pointeur de méthodes statiques à une autres méthodes. Je me suis inspiré du tuto sur les pointeurs de fonctions mais j'ai une erreur à la création d'une instance de la classe ayant besoin d'un pointeur de méthodes.

    Voici les bouts de code avec le pointeur :
    /*Création d'une instance de la classe*/
    Lien lQuit(0, 0, 100, 20, Evenement::Quit_OnClick()); ///Erreur de code blocks : invalid use of void expression
    


    /*Code de Quit_Onclick()*/
    void Evenement::Quit_OnClick() {
        m_Running = false;
    }
    


    /*Code de la classe Lien*/
    Lien::Lien(int x, int y, int width, int height, void onClick(), void onMouseOver(), void onMouseOut()) {
        m_X = x;
        m_Y = y;
        m_Width = width;
        m_Height = height;
        m_OnClick = onClick;
        m_OnMouseOver = onMouseOver;
        m_OnMouseOut = onMouseOut;
        m_MouseIn = false;
        m_IfClick = false;
    }
    
    Lien::~Lien() {  }
    
    void Lien::Evenement(const sf::Input &Input) {
        if(m_MouseIn) {
            if(!(Input.GetMouseX() >= m_X && Input.GetMouseX() <= m_X + m_Width)) {
                if(!(Input.GetMouseY() >= m_Y && Input.GetMouseY() <= m_Y + m_Height)) {
                    if(m_OnMouseOut != NULL)
                        (*m_OnMouseOut)();
                }
            }
        }
    
        if(Input.GetMouseX() >= m_X && Input.GetMouseX() <= m_X + m_Width) {
            if(Input.GetMouseY() >= m_Y && Input.GetMouseY() <= m_Y + m_Height) {
                if(m_OnMouseOver != NULL)
                    (*m_OnMouseOver)();
                m_MouseIn = true;
    
                if(Input.IsMouseButtonDown(sf::Mouse::Left)) {
                    if(m_OnClick != NULL)
                        (*m_OnClick)();
    
                    m_IfClick = true;
                }
            }
            else m_MouseIn = false;
        }
        else m_MouseIn = false;
    }
    


    Est-ce que vous savez pourquoi il y a cette erreur?

    Merci d'avance
    • Partager sur Facebook
    • Partager sur Twitter
      9 mai 2008 à 22:29:08

      Lien lQuit(0, 0, 100, 20, Evenement::Quit_OnClick);
      
      • Partager sur Facebook
      • Partager sur Twitter

      Pointeur de méthodes statics

      × 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