//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