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 :

Static methods et héritage


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    RME
    RME est déconnecté
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2006
    Messages : 4
    Par défaut Static methods et héritage
    Bonjour,

    J'ai une classe ABC qui contient plusieurs methodes statiques.
    Cette classe ABC hérite de la classe FGH
    La classe XYZ hérite de la classe ABC. La classe XYZ contient un array qui comprend plusieurs elements. Les elements contiennent les items suivants : char *token et le pointeur d'une des fonctions statiques. 1) Comment dois-je déclarer ce pointeur? 2) Comment puis-je appeler la fonction statique adressée par ce pointeur? 3) Comment dans une fonction statique de la classe ABC puis-je appeler une méthode standard de la classe FGH?

    Merci pour vos réponses.

  2. #2
    Membre Expert Avatar de Astraya
    Homme Profil pro
    Consommateur de café
    Inscrit en
    Mai 2007
    Messages
    1 050
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Consommateur de café
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 050
    Par défaut
    Bonjour,

    As-tu pris le temps de faire des recherches sur google concernant les pointeurs de fonction sur des fonctions static?

    Une aide:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MyPtrFct myfunc = &MyClass::StaticMemberFunc;
    Et un cours :
    http://cpp.developpez.com/cours/cpp/...page_6#LVI-L-1

  3. #3
    RME
    RME est déconnecté
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2006
    Messages : 4
    Par défaut static methods and heritage
    Bien sûr.

    En fait, pour faire simple, ma question est :
    Comment puis-je, à partir d'une méthode static de la classe ABC appelée par une méthode de la classe XYZ, appeler une méthode non static qui est dans la classe FGH.

    Je rappelle,
    XYZ hérite de ABC
    ABC hérite de FGH

    Je pense que la meilleure solution est de passer un pointeur vers l'objet de la classe à la fonction static se trouvant dans ABC. Dans ce cas this.
    Est-ce exact?

  4. #4
    Membre Expert
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    734
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 734
    Par défaut
    les relations d'héritage en l'occurence on s'en tappe.
    Simplement il faut que tu passes à ta fonction statique un pointeur sur un objet du type FGH. Dans le code de ta fonction statique tu définis un pointeur sur fonction membre vers ta fonction membre à appeler et tu utilises la syntaxe torturée ci-dessous:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    static int callFromStatic(FGH * obj, int parmValue){
          int (FGH::*func)(int);
          return (obj.*func)(parmValue);
    }

Discussions similaires

  1. non-static method cannot be referenced from a static context
    Par Spawny123 dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 04/03/2010, 21h38
  2. error non static method
    Par Kihmé Xs dans le forum Général Java
    Réponses: 4
    Dernier message: 14/11/2008, 12h30
  3. [MySQL] Erreur : Non-static method DB::isManip()
    Par lodan dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 02/09/2007, 15h37
  4. Réponses: 9
    Dernier message: 13/02/2007, 15h29
  5. Cannot make a static reference to the non-static method
    Par semaj_james dans le forum Langage
    Réponses: 5
    Dernier message: 11/05/2006, 23h10

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