Bonjour,
en vue d'éradiquer un petit problème de "Pure virtual function called" à l'exécution d'un programme, j'ai mis ça dans un moteur de recherche bien connu, et je suis tombé sur une info qui m'étonne un peu :
Rassurez-moi, ceci est faux ? On peut bien faire :le destructeur des classe filles appellent naturellement le destructeur de la classe mère. le problème c'est qu'avec un Mere* pointant vers une instance de Fille, l'appel du destructeur (par delete) se contente par défaut d'appeler le destructeur de Mere (normal). il faut donc rajouter le mécanisme d'indirection virtuel pour que ça soit le destructeur du type réel de l'objet pointé qui soit appelé
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
Code : Sélectionner tout - Visualiser dans une fenêtre à part vector<A*> Tab;
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
Mon problème s'arrange en fait traquant les fonctions virtuelles pures dans les constructeurs et destructeurs.
Je ne pense pas qu'il soit nécessaire de transtyper pour bien deleter, même dans le cas cité.
Merci d'avance pour cette précision.

 

 
		
		 
         
  
			
			

 
   


 "Pure virtual function called" et destructeur virtuel
 "Pure virtual function called" et destructeur virtuel
				 Répondre avec citation
  Répondre avec citation


 
  
  
  
 
 
			 
 


 
			 
  
 
				 )
)
						 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
 
			 Envoyé par Seb des Monts
 Envoyé par Seb des Monts
					
 
						
Partager