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 !