concordo con MItaly riguardo l'uso di str::string, altrimenti devi riallocare le stringhe ogni volta
codice:
istream& operator >> (istream& in, Persona& P)
{
char str[255]; // di appoggio
cout << "Inserire Nome: ";
cin.getline ( str, 255 );
delete [] P.Nome;
P.Nome = new char [ strlen( str ) + 1 ];
strcpy ( P.Nome, str );
cout << "Inserire Cognome: ";
cin.getline ( str, 255 );
delete [] P.Cognome;
P.Cognome = new char [ strlen( str ) + 1 ];
strcpy ( P.Cognome, str );
cout << "Inserire età: ";
in >> P.Eta;
return *this;
}