Bonjour a tous,
J'utilise une librairie dans laquelle j'ai acces a une classe Image utilisant les template:
ensuite il y a uen autre classe qui cache des Images:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 template <class T> class Image { public: .... }
et j'aimerai utilise cette derniere classe pour cacher mes propres images qui possede des metadata, j'ai donc fait comme suit:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 template <class T> class ImageCache { public: //! access the first Image (oldest) in the queue virtual const Image<T>& front() const; //! the cache of the images std::deque< Image<T> > itsCache; .... }
et dans mon main lorsque je l'utilise:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 template <class T> class MonImage : public Image<T> { Metadata metadata; }
a la compilation j'ai
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 //creation ImageCache< PixRGB<byte> > outCache(size); MonImage< PixRGB<byte> > img('./img.jpg'); Metadata m = Metadata('test'); img.setMetadata(m); //recuperation donnees string = outCache.front().getMetadata().getText();
donc il ne comprend pas que c une MonImage mais une Image ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 const class Image<PixRGB<unsigned char> > has no member named getMetadata
J'ai bien essaye de caster avec:
mais le compi croit que c un constructeur et me dit que j'ai pas le bon constructeur !!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 string = ((MonImage)(outCache.front())).getMetadata().getText();
comment caster dans mon cas ?
Partager