Ho riscritto la classe, così sembra andare. L'unico problema (spero l'unico) è il distruttore. Non so come comportarmi.

Se do
codice:
 delete [] nomestringa
Il compilatore non riconosce nomestringa come un puntatore, come risolvo?

codice:
#include <iostream>
#include "Persona.h"

using namespace std;

Persona::Persona()
{
	Nome="";
	Cognome="";
	Eta=0;
}


Persona::Persona(const Persona & P)
{
	string Nome(P.getN());
	string Cognome(P.getC());
	int Eta=P.getE();
}

Persona::Persona(const string N, const string C, const int E)
{
	Nome=N;
	Cognome=C;
	Eta=E;
}

Persona::~Persona()
{
	
}

const Persona& Persona::operator = (const Persona& P)
{
	if(this!=&P)
	{
		Nome = P.getN();
		Cognome = P.getC();
		Eta=P.getE();

		return *this;
	}
}

const string Persona::getN() const
{
	return Nome;
}

const string Persona::getC() const
{
	return Cognome;
}

const int Persona::getE() const
{
	return Eta;
}

ostream& operator << (ostream& out, const Persona& P)
{
	out << P.Nome << " " << P.Cognome << " " << P.Eta << " anni" << endl;
	return out;
}

istream& operator >> (istream& in, Persona& P)
{
	cout << "Inserire Nome: "; getline(in,P.Nome);
	cout << "Inserire Cognome: "; getline(in,P.Cognome);
	cout << "Inserire età: "; in >> P.Eta;
	
	return in;
}
EDIT:
Come non detto, ho trovato nomestringa.clear() che dovrebbe fare al caso mio.
Ad ogni modo ditemi se ora la classe è più decente