Perte de vector entre constructeur et méthodes
Bonjour à vous,
Alors voilà j'ai un petit problème et à vrai dire, la gestion de la mémoire ce n'est pas mon fort, voilà mon code :
Dans map.h :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| class Map {
public:
Map(sf::RenderWindow &);
sf::RenderWindow &appeuh;
void afficher();
private:
std::vector< std::vector< int > > fixed_items;
std::vector< std::vector< int > > destructible_items;
std::vector<Item*> brique_tableau;
}; |
et map.cpp :
Code:
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 38 39
| Map::Map(sf::RenderWindow &app) : appeuh(app) {
std::vector< std::vector< int > > fixed_items(10,std::vector<int> (10, 0));
std::vector< std::vector< int > > destructible_items(10,std::vector<int> (10, 0));
int i, j;
for(i = 0; i < 9; i++) {
fixed_items.at(0).at(i) = 1;
fixed_items.at(i).at(0) = 1;
fixed_items.at(9).at(i) = 1;
fixed_items.at(i).at(9) = 1;
}
for(i = 0; i <= 9; ++i) {
for(j = 0; j <= 9; ++j) {
std::cout << fixed_items.at(i).at(j) << " | ";
}
std::cout << std::endl;
}
std::cout << "taille : " << fixed_items.size() << std::endl;
}
void Map::afficher() {
// la est le problème : ça m'affiche 0..
std::cout << "taille : " << fixed_items.size() << std::endl;
int i, j;
for(i = 0; i < 9; ++i) {
for(j = 0; j < 9; ++j) {
std::cout << fixed_items.at(i).at(j) << " | ";
}
std::cout << std::endl;
}
} |
et dans mon main :
Code:
1 2
| Map maMap = Map(App);
maMap.afficher(); |
Mon problème est le suivant, lorsque je scrute mon debugger (j'utilise XCode), je vois qu'après le passage du constructeur, mon vector se vide et passe à "out of scope" :x
Depuis 2h environ je suis là dessus et je bloque, j'ai vu qu'il fallait peut-être utiliser std::copy mais je ne vois pas trop pourquoi un attribut d'une instance de ma classe se viderais oO
si vous avez une piste je suis preneur ;-)
merci d'avance