// Persona.h #ifndef PERSONA_H #define PERSONA_H #ifndef LISTC_H #include "listc.h" #endif #ifndef MENU_H #include "menu.h" #endif class Persona : public list { protected: char *nome; // Comune sia a indirizzo che a Telefono int nstrlen (const char *s); // Calcola lunghezza dei soli stampabili virtual void stampa () = 0; // Stampa Indirizzo o Telefono public: Persona (Persona **l, char *n); // Aggiunge alla lista di Persone ~Persona (); void cerca (char *n); // Cerca in base al nome static void nstrcpy (char *d, const char *s); // Copia solo gli stampabili }; class Indirizzo : public Persona { char *indirizzo; int cap; char *citta; protected: virtual void stampa (); public: Indirizzo (Persona **l, char *n, char *ind, int c, char *cit); ~Indirizzo (); }; class Telefono : public Persona { char *numTel; protected: virtual void stampa (); public: Telefono (Persona **l, char *n, char *nt); ~Telefono (); }; /* Menu' Definiti solo il costruttore ed 'action' */ class MenuCerca : public menu { protected: virtual void action (void *par); public: MenuCerca (menu **base,char *n) : menu (base,n) {}; }; class MenuIndirizzo : public menu { protected: virtual void action (void *par); public: MenuIndirizzo (menu **base,char *n) : menu (base,n) {}; }; class MenuTelefono : public menu { protected: virtual void action (void *par); public: MenuTelefono (menu **base,char *n) : menu (base,n) {}; }; #endif