La classe GenericType est la classe-mere de toutes les classes utilisees par la classe Versatile. See Classe Versatile.
Elle definit une interface que Versatile utilise pour controler les objets : constructeur simple et destructeur, operateur sur ostream, conversion en chaine et surtout methode clone.
La methode clone permet de recuperer un nouvel objet identique au premier qui sera automatiquement alloue sur le tas par un appel a new. Il est important de noter ici que le nouvel objet DEVRA etre desalloue par un appel a delete. Cette desallocation est a la charge de l'utilisateur de l'objet sans quoi une fuite memoire en resultera.
class GenericType { public: // Constructeur et destructeur GenericType(); virtual ~GenericType(); // Operateur pour l'affichage sur un stream friend ostream & operator << (ostream & os, const GenericType & obj); // Conversion en chaine virtual string affiche() const; // Clone duplique l'objet et en fabrique un nouveau a l'aide de new // qu'il faudra detruire ensuite manuellement virtual GenericType * clone() const; // Retourne le nombre d'objets GenericType et al. static int getNb(); protected: private: static int _nb; // nombre total d'objets GenericType et al. };