//Capo: capo.h // Definisce: Capo, Cintura, Vestiario #ifndef LISTC_H #include "listc.h" #endif #ifndef ATTRLIST_H #include "attrlist.h" #endif #ifndef CAPO_H #define CAPO_H class Vestiario; // Dichiarazione di classe class Capo : public list<Capo> { protected: void Pausa (int num); // Metodo per interrompere lo scorrimento ogni 24 linee AttrGenere Genere; // Attributi del generico capo AttrModello Modello; public: /* Costruttore. Data la lista, il genere e il modello, * chiama gli opportuni costruttori per la superclasse e * gli attributi */ Capo (TPtr &l, char *Gen, char *Mod) : list<Capo> (l), // Usando il template, non deve fare cast Genere (Gen), Modello (Mod) { }; virtual int operator != (Capo *c); // Operatore di confronto con una lista di capi virtual int operator == (AttrList *l); // Operatore di confronto con una richiesta virtual void show (int num); // Funzione ricorsiva che mosatra l'intera lista }; class Cintura : public Capo { protected: AttrTaglia Taglia; // Oltre agli attributi di un generico capo, una cintura ha la taglia public: /* Costruttore. Dati la lista, il genere, il modello e la taglia, * chiama i costruttori con parametri per la superclasse e gli * attributi */ Cintura (TPtr &l, char *Gen, char *Mod, int tg) : Capo (l, Gen, Mod), Taglia (tg) { }; virtual int operator != (Capo *c); // Operatore di confronto con un altro capo virtual int operator == (AttrList *l); // Operatore di confronto con una richiesta virtual void show (int num); // Funzione ricorsiva che mosatra l'intera lista }; class Vestiario : public Cintura { AttrColore Colore; // Oltre agli attributi di una cintura, un capo di vestiario ha il colore public: /* Costruttore. Dati la lista, il genere, il modello e la taglia, e il colore * chiama i costruttori con parametri per la superclasse e gli * attributi */ Vestiario (TPtr &l, char *Gen, char *Mod, int tg, char *Col) : Cintura (l, Gen, Mod, tg), Colore (Col) { }; virtual int operator != (Capo *c); // Operatore di confronto con un altro capo virtual int operator == (AttrList *l); // Operatore di confronto con una richiesta virtual void show (int num); // Funzione ricorsiva che mosatra l'intera lista }; #endif