Bonjour,
Je suis toujours sur mon projet étudiant de casse brique. Je suis confronté depuis quelques jours à un problème.
Je souhaite diffuser un id dans mes formes pour pouvoir les reconnaître. J'ai quelques classes (raquette, balle, brique,...) qui héritent de forme et que je souhaite pouvoir identifier, pour connaître le contenu de mon pointeur forme * dans le code suivant (il peut aussi bien pointer sur un raquette que sur une balle, etc):
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 void balle::collision(const listeforme &liste) { float x,y; forme * pforme; for(int i = 0; i<4; i++) { x= scout[i].getx(); y= scout[i].gety(); pforme = liste.selection(x,y);//.selection(x,y); if((pforme!=this)&&(pforme!=NULL)) { pforme->collision(this,i); } } //Fin de partie if(pforme->getIdforme()==1) //si c'est une raquette { //Traitement } ...Or le test suivant provoque le plantage de mon programme :
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 class forme { public: ... virtual int getIdforme(); protected: int idforme; ... private: }; . . . int forme::getIdforme() { return idforme; }
Le compilateur ne m'affiche aucune erreur, j'ai plus l'impression d'accéder à une partie de la mémoire qui ne m'appartient pas bizarrement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part if(pforme->getIdforme()==1)
Si vous avez besoin de plus de détail, n'hésitez pas à me demander des précisions.
Je vous remercie d'avance pour l'aide que vous pourrez m'apportez.
Partager