Template et Polymorphisme = contrainte ?
Bonjour à tous,
Je me pose une petite question existentielle ! :mrgreen:
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:
Code:
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;
}; |
Le client devra désormais utiliser le polymorphisme, non pas par un simple pointeur Camera *, mais bien par un Camera<T> * ....
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... ;)
:merci: d'éclaicir ma lanterne ! :)