implémentation d'une classe générique (liste chainée) [C++] - C++ - Programmation
Marsh Posté le 22-12-2003 à 20:41:12
tu demande un const Info &arg, et tu lui passe un int.
c'est quoi le message d'erreur?
Marsh Posté le 22-12-2003 à 20:49:39
Info étant le paramètre-type du modèle, la fonction instanciée a pour proto:
void listeFIFO<int>::ajouterElt(const int& )
Je ne sache pas qu'on puisse passer une constante littérale (10) par référence...
Marsh Posté le 22-12-2003 à 20:50:21
hum il me mets "instantiated from here"
mais en fait justement je veux faire un truc générique, c'est pour ça que j'ai mis un type Info (je voudrais que ça puisse être n'importe quoi, y compris un int)
Marsh Posté le 22-12-2003 à 20:54:29
ACut a écrit : Je ne sache pas qu'on puisse passer une constante littérale (10) par référence... |
le compilateur fait une copie
void listeFIFO<Info>::ajouterElt(const Info &arg);
ct'as vu ou ce genre de déclaration toi ?
Marsh Posté le 22-12-2003 à 21:03:55
ReplyMarsh Posté le 23-12-2003 à 11:14:25
taz a écrit : enquoi c'est fou ? |
Eh bien, ça m'épate qu'on puisse transmettre une cte littérale à un f(const int& ). C'est vrai que const fait toute la différence, mais bon, un rien m'émeut. D'ailleurs sans le const, je n'obtiens qu'un modeste avertissement en faisant f(10); sur f(int& i){i=20;}
Je m'attendais à des ennuis plus sérieux... On apprend à toute heure!
Marsh Posté le 22-12-2003 à 19:52:08
Bon voilà je voudrais faire une liste chaînée de type FIFO (oui je sais ça existe déjà et c'est la 1000000000ième fois que quelqu'un se lance là dedans mais je dois la faire moi même )
Donc je voulais faire quelque chose de générique avec l'aide de la STL (bien que je n'y connaisse pas grand chose)
donc dans mon .h j'ai mis ça pour l'instant (pas fini):
et dans le .CPP:
mais quand je veux ajouter un élément dans une liste avec un main pas moyen de compiler
Je mets ça exactement:
Quelqu'un peut m'éclairer? Merci d'avance !