Bonjour,
Je travaille sur un projet étudiant de casse brique. Et je souhaite trouver avec quelle forme ma balle rentre en collision.
J'ai un problème lié à la gestion de mon pointeur de classe.
Mon problème repose sur trois classes : forme, murbrique, raquette.
Murbrique et raquette héritent tous les deux de forme.
J'ai une classe qui listent les formes qui sont instanciées et par le biais d'une méthode selection(x,y) je récupère dans un pointeur (de type forme *) l'adresse de la forme qui se trouve aux coordonnées (x,y)
Je souhaite effectué un traitement différent en fonction du type de forme contenu dans ce pointeur.
J'ai donc deux méthodes détection qui prennent deux types de paramètre différents, qui effectuent donc mes traitements distincts.
Le compilateur m'affiche "error: call of overloaded 'detection(forme*&)' is ambiguous"
J'aimerais donc que mon pointeur de forme se "spécialise" en fonction de l'objet sur lequel il pointe et qu'ainsi il sache quelle méthode utiliser.
Voici le code :
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
22
23
24
25
26
27
28 void balle::collision(listeforme liste) { float x,y; forme * pforme; x= p.getx(); y= p.gety(); pforme = liste.selection(x,y); if((pforme!=this)&&(pforme!=NULL)) { detection(pforme); } //Collision avec l'écran if((y<=0)||(y>=SCREEN_H)) rebond(true); if((x<=0)||(x>=SCREEN_W)) rebond(false); } void balle::detection(murbrique* pm) { //traitement 1 } void balle::detection(raquette* praq) { //traitement 2 }
Je vous remercie par avance de votre aide.
Partager