Salut à tout le monde !
J'espère qu'à vous pourrez me donner un coup de main avec un problème lié à recursivité et aux méthodes virtuelles.
J'ai une fonction virtuelle qui s'appelle inList et qui est déclaré dans la classe de base qui s'appelle Product.
La méthode inList est redéfinie dans 2 classes dérivées de Product : CompositeProduct et BasicProduct.
CompositeProduct a une attribute "std::vector<Product *> _listProduct". Ainsi on peut former des arbres composés par des BasicProducts et CompositeProducts à condition qu'à la base de l'arbre se trouve une CompositeProduct.
La finalité de la méthode inList est de repèrer si un produit se trouve dans l'arbre ou pas.
les declarations pour inList sont les suivantes :
Quand j'essaie de compiler, le compilateur me montre les erreurs suivantes :
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
error: no matching function for call to ‘CompositeProduct::inList(Product*&)’
note: candidates are: virtual bool CompositeProduct::inList(const Product*&)
error: no matching function for call to ‘CompositeProduct::inList(BasicProduct*&)’
note: candidates are: virtual bool CompositeProduct::inList(const Product*&)
Quelqu'un peut m'aider svp?
Quelqu'un a une idée de ce qu'il faut que je fasse ?
Merci d'avance !

 

 
		
		 
         
			
			


 
			 
   


 Voilà un défi : problème utilisant méthode récursive
 Voilà un défi : problème utilisant méthode récursive
				
 Répondre avec citation
  Répondre avec citation


 
  
  
 
 
			 
  Envoyé par donkeyquote
 Envoyé par donkeyquote
					



 
  
			 
  
 
				

 A méditer: La solution la plus simple est toujours la moins compliquée
A méditer: La solution la plus simple est toujours la moins compliquée 
						
Partager