Ho riscritto la classe, così sembra andare. L'unico problema (spero l'unico) è il distruttore. Non so come comportarmi.
Se do
Il compilatore non riconosce nomestringa come un puntatore, come risolvo?codice:delete [] nomestringa
EDIT: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; }
Come non detto, ho trovato nomestringa.clear() che dovrebbe fare al caso mio.
Ad ogni modo ditemi se ora la classe è più decente![]()

Rispondi quotando