// Fichier genere avec ./genere -t3 Derived #ifndef _DERIVED_H_ #define _DERIVED_H_ #include #include "Base.h" using namespace std; //---- Pour les classes template avec fonctions amies template class Derived; template ostream& operator<<(ostream& os, const Derived& aD); template bool operator==(const Derived& aD1, const Derived& aD2); template bool operator!=(const Derived& aD1, const Derived& aD2); //--------------------------------------------------- //export template class Derived : public Base { friend ostream& operator<< <>(ostream& os, const Derived& aD); public : // Allocateurs/Desallocateurs Derived(void); Derived(const Derived& aD); Derived& operator=(const Derived& aD); virtual ~Derived(void); // Comparaisons friend bool operator== <>(const Derived& aD1, const Derived& aD2); friend bool operator!= <>(const Derived& aD1, const Derived& aD2); // Inspecteurs/modificateurs void setDerivedObject(const T3& object); const T3& getDerivedObject(void) const; protected : // Methodes a appeler par une classe derivee // display: a appeler dans une classe derivee // display est une virtual void display(ostream& os) const; // methode appelee // dans operator<< // isEqualTo: a appeler dans une classe derivee (dans operator==) bool isEqualTo(const Derived& aD) const; protected : // ### private : T3 _derivedObject; private : // Methodes privees d'allocation/desallocation void _copy(const Derived& aD); void _destroy(void); }; #endif // _DERIVED_H_