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 :

[Attributs statics] Regrouper des valeurs dans une classe


Sujet :

C++

  1. #1
    Membre �clair� Avatar de Wookai
    Profil pro
    �tudiant
    Inscrit en
    Septembre 2004
    Messages
    307
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Septembre 2004
    Messages : 307
    Par d�faut [Attributs statics] Regrouper des valeurs dans une classe
    Bonjour � tous !

    J'ai besoin dans mon programme d'utiliser diff�rentes valeurs � plusieurs endroits, et j'ai pens� les regrouper dans une classe, en tant qu'attributs statics. Voici le code de ma classe :

    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
    28
    29
    #ifndef PARAM
    #define PARAM
     
     class Param {
     
     public :
     
     static int longueur_liste_tabou;
     static int critere_arret_intens;
     static int critere_best_improving;
     static int critere_arret_div;
     static int it_escape;
     static double facteur_flow;
     static double facteur_contraintes;
     static double fraction_deepSearch;
     
     };
     
      int Param::longueur_liste_tabou = 7;
      int Param::critere_arret_intens = 15;
      int Param::critere_best_improving = 5;
      int Param::critere_arret_div = 3;
      int Param::it_escape = 10;
      double Param::facteur_flow = 0.9;
      double Param::facteur_contraintes = 0.1;
      double Param::fraction_deepSearch = 0.15;
     
     
    #endif
    Lorsque j'inclus ce fichier (param.h) o� j'en ai besoin, j'ai l'erreur suivante :

    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
    usr/bin/ld: multiple definitions of symbol Param::facteur_flow
    /var/tmp//cc5fj4wK.o definition of Param::facteur_flow       in section (__DATA,__data)
    /var/tmp//ccy03g5I.o definition of Param::facteur_flow       in section (__DATA,__data)
    /usr/bin/ld: multiple definitions of symbol Param::critere_arret_div
    /var/tmp//cc5fj4wK.o definition of Param::critere_arret_div       in section (__DATA,__data)
    /var/tmp//ccy03g5I.o definition of Param::critere_arret_div       in section (__DATA,__data)
    /usr/bin/ld: multiple definitions of symbol Param::facteur_contraintes
    /var/tmp//cc5fj4wK.o definition of Param::facteur_contraintes       in section (__DATA,__data)
    /var/tmp//ccy03g5I.o definition of Param::facteur_contraintes       in section (__DATA,__data)
    /usr/bin/ld: multiple definitions of symbol Param::fraction_deepSearch
    /var/tmp//cc5fj4wK.o definition of Param::fraction_deepSearch       in section (__DATA,__data)
    /var/tmp//ccy03g5I.o definition of Param::fraction_deepSearch       in section (__DATA,__data)
    /usr/bin/ld: multiple definitions of symbol Param::critere_arret_intens
    /var/tmp//cc5fj4wK.o definition of Param::critere_arret_intens       in section (__DATA,__data)
    /var/tmp//ccy03g5I.o definition of Param::critere_arret_intens       in section (__DATA,__data)
    /usr/bin/ld: multiple definitions of symbol Param::longueur_liste_tabou
    /var/tmp//cc5fj4wK.o definition of Param::longueur_liste_tabou       in section (__DATA,__data)
    /var/tmp//ccy03g5I.o definition of Param::longueur_liste_tabou       in section (__DATA,__data)
    /usr/bin/ld: multiple definitions of symbol Param::critere_best_improving
    /var/tmp//cc5fj4wK.o definition of Param::critere_best_improving       in section (__DATA,__data)
    /var/tmp//ccy03g5I.o definition of Param::critere_best_improving       in section (__DATA,__data)
    /usr/bin/ld: multiple definitions of symbol Param::it_escape
    /var/tmp//cc5fj4wK.o definition of Param::it_escape      in section (__DATA,__data)
    /var/tmp//ccy03g5I.o definition of Param::it_escape      in section (__DATA,__data)
    collect2: ld returned 1 exit status
    Est-ce que je m'y prends mal pour d�finir ma classe et les valeurs de mes attributs ? Je pr�cise qu'ils ne sont pas constants car je dois les modifier en cours d'ex�cution.

    Merci d'avance pour votre aide !

  2. #2
    Membre �prouv�
    Lyc�en
    Inscrit en
    Juillet 2007
    Messages
    148
    D�tails du profil
    Informations personnelles :
    �ge : 34

    Informations professionnelles :
    Activit� : Lyc�en

    Informations forums :
    Inscription : Juillet 2007
    Messages : 148
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    int Param::longueur_liste_tabou = 7;
      int Param::critere_arret_intens = 15;
      int Param::critere_best_improving = 5;
      int Param::critere_arret_div = 3;
      int Param::it_escape = 10;
      double Param::facteur_flow = 0.9;
      double Param::facteur_contraintes = 0.1;
      double Param::fraction_deepSearch = 0.15;
    Il faut mettre �a dans le .cpp

  3. #3
    Membre exp�riment� Avatar de Kujara
    Profil pro
    Inscrit en
    D�cembre 2006
    Messages
    262
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : D�cembre 2006
    Messages : 262
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
      int Param::longueur_liste_tabou = 7;
      int Param::critere_arret_intens = 15;
      int Param::critere_best_improving = 5;
      int Param::critere_arret_div = 3;
      int Param::it_escape = 10;
      double Param::facteur_flow = 0.9;
      double Param::facteur_contraintes = 0.1;
      double Param::fraction_deepSearch = 0.15;
    Les membres statiques doivent etre definis dans un seul .cpp.
    Or, tu les met dans le .h, donc dans tous les .cpp qui l'inclu.

  4. #4
    Membre �clair� Avatar de Wookai
    Profil pro
    �tudiant
    Inscrit en
    Septembre 2004
    Messages
    307
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Septembre 2004
    Messages : 307
    Par d�faut
    Ok, j'essaierai �a !

    Mais je pensais que les ent�tes pr�-compilateur nous �vitaient ce genre de soucis ?

  5. #5
    Membre exp�riment� Avatar de Kujara
    Profil pro
    Inscrit en
    D�cembre 2006
    Messages
    262
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : D�cembre 2006
    Messages : 262
    Par d�faut
    Citation Envoy� par Wookai Voir le message
    Ok, j'essaierai �a !

    Mais je pensais que les ent�tes pr�-compilateur nous �vitaient ce genre de soucis ?
    Les gardes d'include �a sert juste a eviter qu'un fichier .h soit inclus 2 fois d'affil� dans le m�me .cpp.

  6. #6
    Membre �prouv�
    Lyc�en
    Inscrit en
    Juillet 2007
    Messages
    148
    D�tails du profil
    Informations personnelles :
    �ge : 34

    Informations professionnelles :
    Activit� : Lyc�en

    Informations forums :
    Inscription : Juillet 2007
    Messages : 148
    Par d�faut
    Citation Envoy� par Wookai Voir le message
    Mais je pensais que les ent�tes pr�-compilateur nous �vitaient ce genre de soucis ?
    �a �vite d'inclure plusieurs fois le m�me fichier .h (qui peut faire une boucle infinie) dans un autre fichier.

    Mais les d�finitions des variables statiques seront quand m�me incluses dans chaque fichier qui l'appelle, alors qu'il faut qu'elles soient d�finie qu'une seule fois dans tous les fichiers r�unis.

  7. #7
    Membre �clair� Avatar de Wookai
    Profil pro
    �tudiant
    Inscrit en
    Septembre 2004
    Messages
    307
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Septembre 2004
    Messages : 307
    Par d�faut
    Ok, j'ai bien compris la diff�rence !

    Je testerai �a demain et vous tiendrai au courant !

    Merci en tous cas pour la rapidit� et la qualit� des r�ponses !

    Bonne soir�e/nuit � tous !

  8. #8
    Alp
    Alp est d�connect�
    Expert confirm�

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 36
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par d�faut
    Tu as regard� la FAQ C++ ? Tout y est expliqu�

  9. #9
    Membre �clair� Avatar de Wookai
    Profil pro
    �tudiant
    Inscrit en
    Septembre 2004
    Messages
    307
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Septembre 2004
    Messages : 307
    Par d�faut
    Oups , normalement je pense � aller y jeter un oeil, mais l� j'ai compl�tement zapp� !

    Si jamais, pour les autres �tourdis comme moi, tout est expliqu� ici !

    Merci !

  10. #10
    Membre �clair� Avatar de Wookai
    Profil pro
    �tudiant
    Inscrit en
    Septembre 2004
    Messages
    307
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Septembre 2004
    Messages : 307
    Par d�faut
    Re, juste pour vous dire que �a marche nickel maintenant en mettant les d�finitions dans le .cpp !

    Encore merci � tous !

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Regrouper des colonnes dans une classe
    Par Roger_Rabbit dans le forum JPA
    R�ponses: 3
    Dernier message: 23/10/2013, 09h54
  2. R�cup�rer des valeurs dans une JFrame � partir d'une classe
    Par stratocasters dans le forum Agents de placement/Fen�tres
    R�ponses: 12
    Dernier message: 26/06/2012, 15h15
  3. Regrouper des variables dans une nouvelle classe
    Par saraharas dans le forum SAS Base
    R�ponses: 2
    Dernier message: 13/06/2011, 15h27
  4. Pouvoir g�rer les actions des boutons dans une classe
    Par Cyborg289 dans le forum Composants
    R�ponses: 2
    Dernier message: 08/07/2005, 12h08
  5. fonction r�cup�rant des valeurs dans une fonction popup...
    Par petitsims dans le forum G�n�ral JavaScript
    R�ponses: 2
    Dernier message: 20/01/2005, 14h51

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