Bonjour,

J'ai une classe avec un membre static qui me sert pour compter le nombre d'objets créés. N'empeche que le fait de modifier ce membre dans le constructeur me fait tomber en Erreur. Voici le code :

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
30
31
32
33
34
35
36
37
 
#include <new>
#include <typeinfo>
#include <vector>
 
class Objet
{
  private:
    static int nbrEle;
    int id;
    char name[20];
  public:
    Objet(int _id,const char *_name) {
      id = _id;
      strcpy(name,_name);
      nbrEle++;
    }
 
    static int getNbrEle()
    {
      return nbrEle;
    }
 
 
    void resetNbrEle(){
      nbrEle = 0;
    } 
};
 
 
int main(int, char**)
{
  Objet *obj;
  obj = new Objet(1,"chaine");
 
  return 0;
}
l'erreur est :
undefined reference to `Objet::nbrEle'
Je suis sous Linux avec gcc 4.1.2 20070626

Je rajoute qu'en vidant le main ca passe, le fait de faire le new plante !!