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