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++ Discussion :

Pointeur de function et methode de classe


Sujet :

C++

  1. #21
    Membre éclairé Avatar de LinuxUser
    Inscrit en
    Avril 2007
    Messages
    857
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 857
    Par défaut
    Je suis malheureusement contraint à resté en C++98 standard et sans possiblité d'utiliser de lib externe (donc pas de boost).

    Du coup, l'idée du wrapper C-like (qui a été suggéré deux fois) consiste en quoi exactement?

    A avoir d'un côté une fonction qui prend une fonction en paramètre (de type void * func(double)) et de l'autre un wrapper qui convertir une méthode membre de type void C::func(double) en void *func(double) ?

  2. #22
    Membre Expert Avatar de Ehonn
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    788
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 788
    Par défaut
    Citation Envoyé par LinuxUser Voir le message
    Je suis malheureusement contraint à resté en C++98 standard et sans possiblité d'utiliser de lib externe (donc pas de boost).
    Regarde mon exemple (message #11) avec std::bind1st et std::mem_fun, ce n'est que du C++98

  3. #23
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 153
    Billets dans le blog
    4
    Par défaut
    Franchement je commence à avoir des doutes sur tes recherches. Voire sur la lecture des messages parfois.

    Un foncteur, ça n'a rien de magique, et on en écrit depuis très longtemps. Inutile d'avoir du C++11 14 ou plus pour en écrire un.
    Cas simple pour un foncteur qui ne prend pas de paramètre. A la louche de mémoire ça donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    struct Callback
    {
      virtual ~Callback() {}
      virtual void Call()=0;
      virtual void operator()()=0;
    };
    struct FreeCallback : Callback
    {
      typedef void(*func)();
      FreeCallback(func _func) : ptr(_func) {}
      void Call() { (*ptr)(); }
      void operator()() { (*ptr)(); }
     private:
      func ptr;
    };
    template< class T >
    struct MemberCallback : Callback
    {
      typedef void(T::*ptrFct)(void);
      MemberCallback(T* object, ptrFct method) : m_obj(object), m_method(method) {}
      void Call() { m_obj->m_method(); }
      void operator()(void) { m_obj->m_method(); }
     
     private:
      T* m_obj;
      ptrFct m_method;
    };
    La seule chose qui est (beaucoup) mieux avec le code plus récent, c'est que les template permettent de factoriser l'écriture et te font les copier coller à ta place selon le type de retour, de chaque paramètre, du nombre de paramètre, ....
    Là tu dois le faire toi-même.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

Discussions similaires

  1. Réponses: 9
    Dernier message: 08/02/2006, 12h46
  2. [POO] Prob avec une méthode de classe
    Par Ludo75 dans le forum Langage
    Réponses: 9
    Dernier message: 06/02/2006, 22h37
  3. [DLL] Methodes de classe et dll
    Par chronos dans le forum C++
    Réponses: 11
    Dernier message: 27/04/2005, 17h18
  4. Méthode de classe et copie d'objets
    Par Duloup dans le forum Général Python
    Réponses: 5
    Dernier message: 11/04/2005, 16h27
  5. Visibilité de methodes dans Classe de Class
    Par Math75 dans le forum C++
    Réponses: 9
    Dernier message: 28/09/2004, 12h48

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