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;

}