1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
#include<cstring>
#include<iostream>
#include "Contatto.h"
using namespace std;
class Persona
{
char* nome;
char* cognome;
char* indirizzo;
DbLinked<Contatto> contatti;
public:
Persona()
{
nome=0;
cognome=0;
indirizzo=0;
}
Persona(char* n,char* c,char* ind)
{
this->nome=new char[strlen(n)+1];
this->cognome=new char[strlen(c)+1];
this->indirizzo=new char[strlen(ind)+1];
strcpy(this->nome,n);
strcpy(this->cognome,c);
strcpy(this->indirizzo,ind);
}
~Persona()
{
delete[](nome);
delete[](cognome);
delete[](indirizzo);
cout<<"\npersona eliminata";
}
void aggiungicontatto(tipo_contatto t,char* num)
{
Contatto nuovo_contatto(t,num);
this->contatti.add(nuovo_contatto);
}
Persona& operator = (const Persona& altro)
{
if(this==&altro) return *this;
delete[](this->nome);
delete[](this->cognome);
delete[](this->indirizzo);
this->nome=new char[strlen(altro.nome)+1];
this->cognome=new char[strlen(altro.cognome)+1];
this->indirizzo=new char[strlen(altro.indirizzo)+1];
strcpy(this->nome,altro.nome);
strcpy(this->cognome,altro.cognome);
strcpy(this->indirizzo,altro.indirizzo);
return *this;
}
bool operator == (const Persona& altro)
{
return (!strcmp(this->nome,altro.nome)&&!strcmp(this->cognome,altro.cognome)&&!strcmp(this->indirizzo,altro.indirizzo));
}
friend ostream& operator <<(ostream& output,const Persona& persona)
{
output<<"Nome: "<< persona.nome<<"\nCognome: "<< persona.cognome<<"\nIndirizzo: "<<persona.indirizzo << "\nContatti:" << persona.contatti;
return output;
}
};
|