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 :

fonction externe et fonction membre static


Sujet :

C++

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 209
    Points : 83
    Points
    83
    Par défaut fonction externe et fonction membre static
    Bonjour je suis vraiment gène de poser cette question car je n' ai pas de base C++ mais je suis vraiment bloqué voilà mon problème

    j'ai une classe log avec une fonction static print_tracefile() j'ai une fonction de conversion string to_string(int i) qui permet de convertir de int -> string mais je sais pas comment l utiliser à l'interieur de ma fonction static print_tracefile()
    merc d'avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Une méthode static ne s'applique pas sur un objet.
    Il n'y a donc pas de this qui permettrait d'appeler directement une méthode non static.
    En revanche, en tant que membre de classe, elle a le droit d'utiliser toutes les autres méthodes sur les objets de ce type y compris private et protected.

    Ceci dit, d'après la définition que vous faites de la méthode to_string, celle-ci pourrait très bien être static ce qui lui permettrait d'être invoquée par print_tracefile.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 209
    Points : 83
    Points
    83
    Par défaut
    enfait j ai essayer to_string(int t ) comme membre statique sauf que je sais corriger moi si je me trompe que le type de retour devrait etre aussi statique et dans ce cas comment on pourrait faire avec la variable de type std::ostringstream out

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     std::string to_string(int x)
    osstream << x;
     retunr osstream.str();

  4. #4
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 426
    Points : 827
    Points
    827
    Par défaut
    Ca marchera surement mieux comme ça :
    Si le nom de la classe est 'log'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    osstream << log::to_string(int x);
    retun osstream.str();
    Pour plus de détails c'est , voire plus précisément .

    Bye

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par yassinegoth Voir le message
    enfait j ai essayer to_string(int t ) comme membre statique sauf que je sais corriger moi si je me trompe que le type de retour devrait etre aussi statique
    Non.
    La seule distinction entre une méthode static et un autre méthode d'une même classe c'est que la méthode static n'a pas de this.

    D'où vient osstream ?
    Dans une méthode de conversion entier => chaîne, cet objet n'a pas lieu d'être membre de la classe. Et localement à une méthode, les objets créés n'ont pas de contrainte static ou non static.

    Peut-on avoir un extrait plus complet du code ?
    C'est difficile de donner les bonnes réponses en découvrant le code petit à petit.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 209
    Points : 83
    Points
    83
    Par défaut
    merci les gars pour vos reponse le code est assez long à afficher ici je vais vous présenter un aperçu
    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
     
    Classe log {
     
    //
    attribues et methodes
    //
     
    static void print_trace();
    }
     
    std::string to_string(int x)
    {
      std::stringstream ss;
      ss << x;
    return ss.str();
    }
     
    void log::print_trace(){
     
     std::string str = to_string(other_static_variable::c);
      // le compilateur ne reconnait pas la fonction to_string!
    }

Discussions similaires

  1. Fonctions membres static - undefined reference
    Par OliveK dans le forum C++/CLI
    Réponses: 3
    Dernier message: 09/10/2010, 01h40
  2. Fonctions membres static - undefined reference
    Par OliveK dans le forum C++
    Réponses: 1
    Dernier message: 19/08/2010, 00h26
  3. [PHP][Javascript] PB avec appel de fonctions externes, HELP!
    Par chaser_T dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 11/04/2006, 17h44
  4. Réponses: 3
    Dernier message: 28/11/2005, 13h15
  5. Réponses: 13
    Dernier message: 20/06/2005, 15h13

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