[C++] "référence indéfinie" sous Code::Blocks

Résolu/Fermé
prypiat_child
Messages postés
1343
Date d'inscription
vendredi 30 octobre 2009
Statut
Membre
Dernière intervention
10 avril 2014
- Modifié par prypiat_child le 9/11/2011 à 22:03
prypiat_child
Messages postés
1343
Date d'inscription
vendredi 30 octobre 2009
Statut
Membre
Dernière intervention
10 avril 2014
- 11 nov. 2011 à 15:43
Bonjour,

Lorsque je compile le code suivant (retranscrit ici en partie) sous Code::Blocks, avec GNU GCC comme compilateur, j'ai droit à l'erreur suivante :
"Référence indéfinie vers Test::_e" à l'endroit en gras dans le code.

Sachant que je n'initialise pas le vecteur dans mon constructeur... Je ne pense pas que cela soit nécessaire...
Enfin, plus exactement, je n'ai pas trouvé comment l'initialiser (le seul constructeur de vector() qui me serait utile étant celui qui prend une taille size_t en paramètre, mais impossible de l'utiliser de plus, cela fixerait une taille définitive au vecteur si j'ai bien compris ? ce qui n'est pas mon but)

Test.h
-------------------------------------
#ifndef TEST_H  
#define TEST_H  
#include <iostream>  
#include <vector>  
#include "Ensemble.h"  

class Test  
{  
    int _tx, _ty;  
    int **_m;  

    static std::vector<Ensemble> _e;  

    public:  

    Test(int tx, int ty);  
    ~Test();  
    Ensemble *getTous()const;  
    int getNbEnsembles()const;  
    int getTX()const;  
    int getTY()const;  
    void ajouterEnsemble(Ensemble e)  
    {  
        _e.push_back(e); 
    }  
};  

#endif  


Le problème étant donc cette erreur de compilation. Je vois l'absence d'initialisation du vecteur comme une piste de résolution, mais je reste bloqué^^

Quelqu'un aurait-il une piste ? Merci d'avance !!

"Il siiiiigne a la pointe de son épééééée, d'un W qui veut dire WORROOOOOO !!!!"

1 réponse

prypiat_child
Messages postés
1343
Date d'inscription
vendredi 30 octobre 2009
Statut
Membre
Dernière intervention
10 avril 2014
272
11 nov. 2011 à 15:43
Résolu !


Il s'agissait bien d'un souci d'initialisation : il fallait ajouter ceci dans le .cpp :


std::vector<Ensemble> Test::_e = std::vector<Ensemble>();
0