Déclaration d'amitié pour fonction générique. - C++ - Programmation
Marsh Posté le 13-10-2005 à 14:40:43
pas de friend. fais comme ça http://forum.hardware.fr/hardwaref [...] 8331-1.htm
Marsh Posté le 13-10-2005 à 15:29:00
Dakhor mais ça marche toujours pas :
Code :
|
Code :
|
Je suis sur la bonne voie ou pas ?
Marsh Posté le 13-10-2005 à 15:47:30
Dsl j'ai oublié de précisé :
Citation : |
Marsh Posté le 13-10-2005 à 15:53:10
de l'art de poser son probleme. Bref, fous les définitions de fonctions dans ton .h et zou
Marsh Posté le 13-10-2005 à 15:59:12
Pile.h
Code :
|
Pile.cpp
Code :
|
main.cpp
Code :
|
Marsh Posté le 13-10-2005 à 16:02:51
tu veux pas commencer par faire une classe template avec une seule fonction membre pour voir comment ça marche ?
Marsh Posté le 13-10-2005 à 16:06:35
J'ai gardé que le constructeur et ca me refait pareil : linker error
Marsh Posté le 13-10-2005 à 16:07:38
bon, disons
lors de la ocmpilation d'un fichier A, le compilo a besoin d'avoir non pas les declarations mais les definitions de TOUTES les fonctions template utilisée par A (et/ou les includes, enfin chipotons pas)
Marsh Posté le 13-10-2005 à 16:08:00
fais ce que je t'ai dit d'abord. C'est pas la peine de nous coder 500 lignes et de la péter avec des friends si t'es pas capable de faire une classe de 3 lignes.
Marsh Posté le 13-10-2005 à 16:31:55
Mais heuu ...
Bon j'ai tout mis dans un seul fichier .
Code :
|
Citation : |
C'est quoi le delire la ?
Marsh Posté le 13-10-2005 à 16:51:54
juste comme ça, tout mettre dans le même fichier, ça veut pas dire tout mettre inline.
Marsh Posté le 13-10-2005 à 17:11:56
Puutéén tout ca a cause d'une parenthese de merde. J'y crois pas.
Taz : ok merci
Marsh Posté le 13-10-2005 à 17:21:36
ce qu'on fait d'habitude :
- 1 .h (ou .hpp) avec les déclarations et les inline (la routine)
- 1 .tpp que tu inclues dans le .hpp qui contient les définitions des codes templates.
Marsh Posté le 13-10-2005 à 14:24:28
Hello,
Voila j'ai un patron de classe Pile:
et donc je l'implemente :
Et quand je l'instancie (genre Pile<int> ...) le compilo me dit qu'il y a une erreur a la ligne :
11 F:\...\Pile.hh template-id `operator<< <>' for `std::basic_ostream<char, std::char_traits<char> >& operator<<(std::basic_ostream<char, std::char_traits<char> >&, const Pile<int>& )' does not match any template declaration
Je pige pas c'est quoi le probleme là ?
Message édité par Chronoklazm le 13-10-2005 à 14:25:14
---------------
Scheme is a programmable programming language ! I heard it through the grapevine !