Bonjours à tous,
voici quatre ans que je développe exclusivement C#. J'ai aujourd'hui un projet à réaliser en C++, le retour n'est pas aussi facile que cela.
Voici mon problème:
J'ai défini une classe dont une méthode doit me retourner "un tableau de chaines de caractères". Voulant conserver une certaine généricité je souhaite retourner un iterateur de chaine de caractères afin de m'affranchir du type de conteneur. Je n'ai ici besoin que de pouvoir énumérer dans une boucle type foreach l'ensemble des chaines.
J'ai donc le prototype suivante:
que je chercher à implémenter:
Code : Sélectionner tout - Visualiser dans une fenêtre à part virtual std::iterator<std::input_iterator_tag, std::string> MaMethode()
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
- Cela ne compile pas. J'ai un message m'indiquant que ce que retourne std::vector::begin() ne peut être casté en std::iterator<std::input_iterator_tag, std::string>. Soit. Comment dans ce cas définir ma méthode pour tirer partie de la généricité des itérateurs et pouvoir retourner celui sur mon tableau?
- Se pose ensuite la question du nettoyage: il n'y a pas de garbage collector en C++. Quel design adopter pour s'assurer que mon std::vector result sera détruit ou puisse etre détruit par l'appelant de ma méthode MaMethode?
Merci de m'aider à clarifier tout cela dans ma petite tête,
Neilos

 

 
		
		 
         
 

 
			
			

 
  
 
 
   


 std::iterator, Vector.begin() et généricité
 std::iterator, Vector.begin() et généricité
				 Répondre avec citation
  Répondre avec citation


 
  
  
 
 
			 
 


 Envoyé par Neilos
 Envoyé par Neilos
					
				
Partager