Resalut,
Désolé de reposter mais là je sèche sur une connerie...
Dans ma classe CLevel j'ai un constructeur par défaut en plus du constructeur. Quand j'appelle le constructeur avec les arguments depuis mon application, il n'y a aucun problème, mais si j'initialise avec le constructeur par défaut, mes briques ne s'affichent pas. Pourtant c'est exatctement le même code! En fait dans la console je vois que le destructeur 2 fois dont une directement après...
Voici le constructeur:
et le constructeur par défaut:
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 CLevel::CLevel(unsigned int nBricks, unsigned int nCols, unsigned int Offset, unsigned int widthBrick, unsigned int heightBrick) { // Initialise la liste des briques for(unsigned int i=0; i<nBricks; i++) { // Pour placer les briques de façon homogène unsigned int xOrg = ( (widthBrick+5) * (i % nCols) ) + Offset; unsigned int yOrg = ( (heightBrick+5) * (i / nCols) ) + Offset; // Ajout des briques dans la liste chaînée m_brickList.push_back(new CBrick(255, 0, 0, xOrg, yOrg, widthBrick, heightBrick) ); } cout <<"Constructeur de CLevel\n"; }
Dans le constructeur de l'application:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 // Constructeur par défaut CLevel::CLevel() { // Crée un niveau par défaut CLevel(240, 15, 10, 40, 30); }
ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part Level = new CLevel(240, 15, 15, 40, 30); // marche
Code : Sélectionner tout - Visualiser dans une fenêtre à part Level = new CLevel // marche pas!!
Partager