Iterator sur class template [Résolu]

Signaler
Messages postés
15
Date d'inscription
dimanche 6 janvier 2002
Statut
Membre
Dernière intervention
30 mars 2011
-
Messages postés
15
Date d'inscription
dimanche 6 janvier 2002
Statut
Membre
Dernière intervention
30 mars 2011
-
Bonjour,

je n'arrive pas a crée des iterator sur le container d'une classe template!
Je m'explique par cette exemple :
#include <list>
using namespace std;

template <typename A>
class chat
{
public:
list listA;
void delete(int id);
};

template <typename A>
void chat::delete()
{
list ::iterator it;               //Et bein, ici je n'arrive pas a crée l'iterator!! Why???
}

IDK

4 réponses

Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
Ben si écrit comme ca, ca marche. Sauf que g++ est moins permissif que
d'autre compilo. Donc il gueule, et c'est quoi le message d'erreur ?
Sinon pk tu dis : "ca marche pas", il te dit forcément que ya une
erreur.


Bon a part ca, ya des erreurs toutes les lignes.

Alors deja, t'as pas le droit d'utiliser "delete" comme nom de fonction (sauf exception).

Ensuite, la définition de "delete" parle d'un argument qui n'existe pas dans l'implémentation.

Et enfin, g++ demande "typename" devant le std::list::iterator:

void chat::my_delete(int id)

{

typename list::iterator it;

}
Messages postés
15
Date d'inscription
dimanche 6 janvier 2002
Statut
Membre
Dernière intervention
30 mars 2011

typename list::iterator it;

C'etait ca ! Merci
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
Arf tu n'y arrives pas ? Appuis plus fort alors ca devrait aller...


Nan mais sérieusement, sans msg d'erreur, tu veux qu'on devinne quoi ? Tu programmes sous quoi ?

Deja je suis sceptique sur l'espace entre list et .
Messages postés
15
Date d'inscription
dimanche 6 janvier 2002
Statut
Membre
Dernière intervention
30 mars 2011

Bein, c'est du code! Y a pas besoin de message d'erreur! Ecrit comme ca ca marche pas! Si qqun sait comment faire autrement, il repond!