Bonjour les gens, Je suis coincé avec un problème C++ stupide.Problème avec std :: vector
Disons que j'ai un itérateur appelé IT1 qui passe par les valeurs d'un vecteur contenant des pointeurs à une classe, nous l'appellerons C:
std::vector<C*>::iterator it1;
Mais C est pas seul: il a beaucoup de sous-classes , qui partagent les mêmes attributs et méthodes que je cherche avec it1, bien que leurs implémentations puissent différer ou non. Que devrais-je faire si je voulais que l'itérateur fonctionne avec des éléments (ou mieux, des pointeurs) non seulement de la classe C, mais aussi de ses enfants? Ce que je pensais être quelque chose en utilisant des modèles, bien que cela rendrait les itérations dangereuses car je ne sais pas comment limiter le modèle uniquement à C et ses sous-classes. Aucune suggestion?
Editer: oui, je parlais d'une structure de données récursive. Edit2: Eh bien, il semble que ce n'était pas la faute de l'itérateur après tout. Mon code fonctionnait bien, j'ai posé la question parce que j'allais mettre en œuvre des changements et je ne savais pas quoi faire. Désolé si ce n'était pas clair.
Parlez-vous d'une structure de données récursive ou plate? Vous utilisez des termes qui rendent la distinction confuse. – robert
Il est déjà limité à C et à ses enfants. –
votre code devrait fonctionner. Pouvez-vous montrer plus de fragment de code que non? –