Création de template

Création de template - C++ - Programmation

Marsh Posté le 20-11-2005 à 21:24:26    

Bonsoir à tous,
j'essaye de créer pour la première fois un template en C++ avec MS.net
j'ai un peu honte car le code est vraiment simple, mais je n'arrive pas a trouver de solution à ce problème
voici mon entête :

Code :
  1. template <class T> class Pixel {
  2. private:
  3.  T R,G,B,Y;
  4. public:
  5. Pixel(T R,T G,T B);
  6. ~Pixel() {};
  7. T getR();
  8. void setR(T R);
  9. T getG();
  10. void setG(T G);
  11. T getB();
  12. void setB(T B);
  13. };


 
 
et voici mon fichier cpp  

Code :
  1. #include <iostream>
  2. #include "pixel.h"
  3. template <class T>
  4. Pixel::Pixel(T R,T G,T B)
  5. {
  6.  this->R = R;
  7.  this->G = G;
  8.  this->B = B;
  9. }
  10. template <class T>
  11. T Pixel::getR()
  12. {
  13.  return R;
  14. }
  15. template <class T>
  16. void Pixel::setR(T R)
  17. {
  18.  this->R = R;
  19. }
  20. template <class T>
  21. T Pixel::getG()
  22. {
  23.  return G;
  24. }
  25. template <class T>
  26. void Pixel::setG(T G)
  27. {
  28.  this->G =G;
  29. }
  30. template <class T>
  31. T Pixel::getB()
  32. {
  33.  return B;
  34. }
  35. template <class T>
  36. void Pixel::setB(T B)
  37. {
  38.  this->B =B;
  39. }


 
Il doit y avoir j'imagine une erreur flagrante mais je n'arrive pas a compiler ce fichier et a l'utiliser avec mon programme
Le message d'erreur de MS.net est :  
error C2955: 'Pixel' : l'utilisation d'un modèle de classe nécessite une liste d'arguments de modèle
J'espère que vous prendrez la peine de m'aider.
Cordialement
Caddie

Reply

Marsh Posté le 20-11-2005 à 21:24:26   

Reply

Marsh Posté le 20-11-2005 à 21:40:11    

mets tout dans le .h. tout
 
et travaille un peu :
- les const &
- la syntaxe d'initialisation des membres dans un constructeur

Reply

Marsh Posté le 20-11-2005 à 22:07:43    

Merci pour ta réponse.
le fait qu'il faut tout mettre dans le .h , a quoi celà est-t'il du ?
 
Pour le reste de tes conseils je vais en effet voir de plus prêt les const & mais je ne comprends pas ce qu'il y a comme problème à l'initialisation de mon constructeur ?

Reply

Marsh Posté le 20-11-2005 à 22:16:41    

1) les template, 'est pour générer du code. si t'as pas le code, tu peux pas générer
2) quand tu fais, this->machin = truc; dans ton construteur, this->machin est déjà construit. c'est stupide, ça gache. Tout objet a un construteur de recopie, alors utilise le.

Reply

Marsh Posté le 20-11-2005 à 22:24:33    

Merci, je vais considerer tout ca de très près.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed