Bonjour bonjour !
J'utilise une bibliotheque basee sur les templates (ITK) pour faire du traitement d'images. Grace a elle, en changeant uniquement le type du pixel, et la dimension de l'image, je peux effectuer le exactement le meme traitement sur une image jpg ou sur une autre en 3D.
Probleme : Les templates m'obligent a recompiler a chaque fois que je change de format d'image.
Pour resoudre ca, je voulais utiliser le polymorphisme et de l'heritage pour "cacher" l'etape template. J'ai donc essaye ce bout de code pour faire un test mais... ca foire !
Je suis encore un debutant en C++ (a peine 2 mois d'experience) et j'avoue caler sec sur ce probleme. Quelqu'un a une idee pour s'y prendre correctement ?
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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 #include <iostream> #include <cstdlib> using namespace std; // Classe de base class A { public : A() : m_a(0){} ; virtual ~A() ; virtual void getA() = 0 ; protected : int m_a ; } ; // Classe template parametree template < int number > class B : public A { public : B() : m_a( number ) {} ; virtual void getA(){ cout << m_a << endl ; } ; } ; // Classes "specialisees" class C : public B<2> {} ; class D : public B<3> {} ; // Affiche l'attribut herite de A void showAttribute( A* a ) { a->getA(); } ; /******************************************************************/ int main(int argc, char* argv[]) { A *myClass ; if( atoi(argv[1]) == 0 ) { myClass = new C() ; } else { myClass = new D() ; } showAttribute( myClass ) ; delete myClass ; return 0 ; }
Partager