Bonjour à tous,
Je me pose une petite question existentielle !
Est-ce que le fait d'avoir une classe template avec des fonctions virtuelles ajoutent trop de contraintes au client...
Exemple avec cette class Camera:
Le client devra désormais utiliser le polymorphisme, non pas par un simple pointeur Camera *, mais bien par un Camera<T> * ....
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 template <typename T> class Camera { public: typedef typename T value_type; //Accès au type depuis l'extérieur typedef typename vigra::BasicImage<T> image; //Accès au type depuis l'extérieur Camera(std::string nomCamera); virtual ~Camera() {} Camera (const & Camera); // On interdit la copie virtual image LoadImageByNumber(int number) = 0; virtual image LoadImageByTime(double time); protected: double m_Tech; // Période d'échantillonnage de la caméra const std::string m_NomCamera; };
Celà représente t-il une contrainte forte ? Trop forte?
Ce que je veux dire par là c'est que l'introduction d'un template est pour moi une souplesse de plus pour un changement éventuel pour la suite... Si c'est vraiment super chiant pour les appelants (il vont devoir tout templater en fait dans l'IHM), alors je laisse tomber...
d'éclaicir ma lanterne !
Partager