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

Threads & Processus C++ Discussion :

Thread avec une fonction membre d'une classe


Sujet :

Threads & Processus C++

  1. #1
    Membre régulier
    Inscrit en
    Septembre 2004
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 187
    Points : 97
    Points
    97
    Par défaut Thread avec une fonction membre d'une classe
    Bonjour à tous!
    Je m'exerce aux threads avec glib et j'ai écrit une classe qui devrait pouvoir instancier une classe enfant (6 maximum). De plus cette classe possède un membre "int" dont la valeur est choisie et changée "aléatoirement" jusqu'à ce que les 6 "int" forment une suite. Je sais pas si c'est très claire...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    class CTest
    {
    public:
    //...//
    void _chercher();
    protected:
    int m_val;
    GThread* m_pthread;
    CTest* m_parent;
    CTest* m_enfant;
    static int compteur;
    void _enfanter(CTest*);
    };
    Le .cc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    //...//
    CTest::CTest(CTest* pointeur):m_parent(pointeur)
    {
    if(compteur<6)
    {m_pthread=g_thread_create((GThreadFunc)_enfanter,this,TRUE,NULL);}-->>erreur
    //...//
    }
    void CTest::_enfanter(CTest* p)
    {
    m_enfant=new CTest(p);
    }
    Le compilateur me dit "invalide use of member". Par contre si j'ecris une fonction externe à la classe le probleme est "résolu" (presque puisque je ne peux plus faire ce que je voulais).
    Faut-il comprendre qu'on ne peut pas appeler une fonction membre de la classe à l'intérieur d'un thread ou y a t-il moyen de le faire malgré tout?

  2. #2
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Points : 4 732
    Points
    4 732
    Par défaut
    FAQ du site (par contre c'est dans la FAQ SDL).
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  3. #3
    Membre régulier
    Inscrit en
    Septembre 2004
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 187
    Points : 97
    Points
    97
    Par défaut
    Merci!
    Les explications sont un peu austères, mais je vais essayer de comprendre.

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

Discussions similaires

  1. [Free Pascal] Enregistrer une fonction callback depuis une fonction membre
    Par EpiTouille dans le forum Free Pascal
    Réponses: 3
    Dernier message: 11/03/2015, 11h11
  2. Réponses: 3
    Dernier message: 19/12/2014, 17h03
  3. Thread d'une fonction membre dans une fonction membre
    Par virtual_bug dans le forum Threads & Processus
    Réponses: 2
    Dernier message: 19/03/2014, 21h49
  4. Réponses: 3
    Dernier message: 29/04/2006, 13h02
  5. Thread avec une fonction membre d'une classe
    Par SteelBox dans le forum Windows
    Réponses: 6
    Dernier message: 01/03/2004, 01h15

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