bonjour,
je souhaite implémenté le design pattern stratégie en C++. Jusque là tout se passe bien.
Pour mon exemple, je prend le cas d'un guerrier (dérivé de la classe abstraite Personnages) qui utilise des armes (epee, hache, petite cuillère ...) dérivées de la classe abstraite Armes.
voici Personnage.hpp :
ensuite, un morceau de Personnage.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
14
puis enfin le main()
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Dans ce cas, le code fonctionne et me donne les bonnes informations, mais j'ai le droit
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
14personnages::Guerrier g1("Minator"); g1.setArme(new armes::Hache(25)); g1.attaquer(); // ok ça marche sans problème // si je fais armes::Hache* hache = new armes::Hache(14); g1.setArme(hache); // pas de problème là non plus // mais dans ce cas .... armes::Epee epee(13); g1.setArme(epee); g1.attaquer();
à un joli <<erreur de segmentation>> dans mon destructeur de Personnages
J'ai essayé plusieurs idées pour palier au problème, sans succès.
J'avais pensé qu'il fallait 2 variables distinctes du style p_arme* et r_arme&, mais cela semble illogique et de toute façon, ensuite comment attaquer() sait se qu'il doit prendre en compte.
Cela doit pourtant bien être possible.
d'avance merci.

 

 
		
		 
         
 

 
			
			


 
			 
   
 


 affecté une référence à un pointeur, c'est possible ?
 affecté une référence à un pointeur, c'est possible ?
				 Répondre avec citation
  Répondre avec citation
Partager