IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

Créer un pointeur de fonction


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2003
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2003
    Messages : 54
    Par défaut Créer un pointeur de fonction
    Bonjour,

    je dois faire un pointeur sur une fonction pour lui assigner tanto une fonction de mon programme tanto une autre.

    Après mes recherches sur le forum/internet, j'ai trouvé cette methode:

    Dans le .h:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    void (*Update)(int);     //Pointeur de fonction
    void Test(int);          //Fonction que je voudrais assigner au pointeur
    dans le .cpp
    et lors de la compilationle compilateur s'arrete sur ma ligne en c avec le message suivant:
    [C++ Erreur] CListProduits.cpp(167): E2034 Impossible de convertir 'void (* (_closure )(int))(int)' en 'void (*)(int)'
    Je ne connais pas le _closure, et je ne trouve pas d'autres exemples/explications sur le concept. Avez vous déjà utilisé ce procédé? avez vous des idées?

    Merci

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 407
    Par défaut
    Salut !
    A plus !

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2003
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2003
    Messages : 54
    Par défaut
    Bonjour, et merci de ta réponse si rapide.

    J'ai donc essayé cette solution, mais rien n'y fait

    En fait, avec:
    et bien, je change de message d'erreur:
    [C++ Erreur] Unit1.cpp(15): E2235 Une fonction membre doit être appelée ou son adresse prise
    Je comprend pas vraiement mieux

    Y a t'il des déclarations supplémentaires a faire pour effectuer ce genre de pointeur?

    Si vous avez des idées, elles sont les bienvenues

    A bientôt

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 407
    Par défaut
    Salut

    Sans doute que la fonction Test devrait être déclarée en global et non en tant que méthode d'une classe.

    A plus !

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2003
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2003
    Messages : 54
    Par défaut
    Citation Envoyé par henderson Voir le message
    Salut

    Sans doute que la fonction Test devrait être déclarée en global et non en tant que méthode d'une classe.

    A plus !
    Re-Bonjour

    Alors, en fait, je viens de faire l'essai, et effectivement, en global, ça fonctionne. Mais le truc, c'est que ma méthode est dans une classe (je fais du c++ ), alors, j'ai essayer de la déclarer en static. Et bien du coup: ça fonctionne !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    static void Test(int);          //Fonction que je voudrais assigner au pointeur
    On galère sur des petits détails des fois, c'est presque déprimmant lol

    Voila, merci pour ton aide M. henderson

  6. #6
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 407
    Par défaut
    Salut !

    Je pensais dans ce sens là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    class Objet
    {
    public :
    void (*Tache)(Objet *This, int N);
    };
    A plus !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 01/09/2011, 14h26
  2. Réponses: 4
    Dernier message: 10/12/2009, 00h45
  3. Matrice de pointeurs de fonctions
    Par sebduth dans le forum C
    Réponses: 15
    Dernier message: 18/07/2003, 14h03
  4. [Kylix] Pointeur de fonctions
    Par _dack_ dans le forum EDI
    Réponses: 1
    Dernier message: 03/07/2003, 10h17
  5. pointeur de fonction
    Par kardath dans le forum C
    Réponses: 4
    Dernier message: 28/12/2002, 14h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo