[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 !!!!"
A voir également:

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