Bonsoir,
voici un problème que je n'arrive pas à résoudre. Je débute en C++ et avec les STL.
J'ai un problème en ce qui concerne l'ajout d'un objet crée via une template dans un objet Vector:
Voici en gros mon code:
Code :
- vector<Pixel *> vpix;
- ...
- Pixel<unsigned char> *pixel = new Pixel<unsigned char>(1,2,3);
- vpix.push_back(pixel);
|
sachant que ma classe pixel est ainsi :
Code :
- template <class T> class Pixel {
- private:
- T R,G,B,Y;
- public:
- Pixel(const T R,const T G,const T B) : R(R),G(G),B(B), Y(R+28*G+216*B) {};
- ~Pixel() {};
- const T& getR()
- {
- return R;
- };
- void setR(const T &R)
- {
- this->R = R;
- };
- const T& getG()
- {
- return G;
- };
- void setG(const T &G)
- {
- this->G =G;
- };
- const T& getB()
- {
- return B;
- };
- void setB(const T &B)
- {
- this->B =B;
- };
- };
|
VC++ me retourne ce message d'erreur
error C2664: 'std::vector<class Pixel *,class std::allocator<class Pixel *> >::push_back' : impossible de convertir le paramètre 1 de 'Pixel<T> *' en 'Pixel *const & '
with
[
T=unsigned char
]
sachant que cette erreur me raméne au push_back.
Pourtant je lui passe bien l'adresse de pixel ce qui semble cohérent étant donné ma définition des types d'objet reçu par vpix....
si une âme charitable pouvait m'aider
cordialement,
caddie