|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Jan 2009
Messaggi: 50
|
problema con l'overload di operatori
Buongiorno a tutti, volevo sapere se c'è qualcuno che può aiutarmi con questo problema:
sto scrivendo un programma in c++ in cui ho definito alcune classi e ho fatto l'overload degli operatori << e >> per gli oggetti relativi a queste classi, ma quando compilo mi da errore: qui vi posto un pezzo del codice: class data {public: int G; int M; int A; data(); void stampa(ostream& dest) {dest<<G<<"/"<<M<<"/"<<A; return; } void leggi(istream& sorg) {int giorno,mese,anno; char sep='/'; sorg>>giorno>>sep>>mese>>sep>>anno; G=giorno; M=mese; A=anno; return; } } class persona : public data {public: string NOME; string COGNOME; data NASCITA; string RECAPITO; string MAIL; persona(); void stampa(ostream& dest) {dest<<COGNOME<<endl<<NOME<<endl; dest<<NASCITA; dest<<endl<<RECAPITO<<endl<<MAIL<<endl<<endl; return; } void leggi(istream& sorg) {string name,surname,address,email; data birth; sorg>>name>>surname; sorg>>birth; sorg>>address>>email; NOME=name; COGNOME=surname; NASCITA=birth; RECAPITO=address; MAIL=email; return; } } //altre classi e robe varie... //poi fuori dalla definizione di qualsiasi classe e prima di aprire il main ho scritto: ostream& operator<<(ostream& dest,const data& x) {x.stampa(dest); return dest; } istream& operator>>(istream& sorg,data& x) {x.leggi(sorg); return sorg; } ostream& operator<<(ostream& dest,const persona& x) {x.stampa(dest); return dest; } istream& operator>>(istream& sorg,persona& x) {x.leggi(sorg); return sorg; } a compile time mi da quest'errore: no match for 'operator<<' in 'dest <<((persona)*this)->persona::NASCITA' perchè??? Come devo fare per risolvere questo problema?? grazie in anticipo a chi risponde!!!! |
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:05.


















