Bonjour,
Je travaille actuellement sur une application de traitement d'images et je rencontre un petit souci.
L'architecture se compose en 3 classes: la classe virtuelle IimageManager, et deux classes qui implémentent l'interfaces ImageManager8 et ImageManager16.
Voici les 3 classes:
Jusque là je n'ai pas de problème de compilation. Le soucis viens dans le main au niveau de l'instanciation.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 <typename T1> class IimageManager{ int getMax(T1 matrice); }; class ImageManager8: public IimageManager<QImage>{ ... ImageManager8* ImageManager8::getInstance(){...} int ImageManager8::getMax(QImage matrice){...} }; class ImageManager16: public IimageManager<unsigned short*>{ ... ImageManager16* ImageManager16::getInstance(){...} int ImageManager16::getMax(unsigned short* matrice){...} };
J'aurai souhaité faire quelque chose de générique du genre.
IimageManager* monManager;
(format==8)?monManager=ImageManager8::getInstance():monManager=ImageManager16::getInstance();
Cependant lorsque je fais quelque chose de ce type j'ai une erreur de compilation car je dois préciser le type utilisé pour pour IimageManager. Mais au moment ou je déclare l'attribut monManager, je ne connais pas le type que je veux utiliser (QImage ou unsigned short*).
Du coup je fais appel à votre aide...
Merci
Partager