Per effettuare l' overlodaing dell' operatore << e >> per formattare lo stream di input e output ho un programmino che funziona finkè dikiaro le variabili della classe come pubbliche....se provo a rendere le variabili private e rendendo l' operatore di overloding FRIEND, il programma non funziona +....ho urgentissimo bisogno di un aiuto causa esame...ma forse è meglio postare il codice:
#include <iostream>
using namespace std;
class messaggi {
private:
char nome[20];
char cognome[20];
public:
void inserisci();
ostream& operator<<(ostream ,messaggi &);
istream& operator>>(istream& ,messaggi &);
};
void messaggi::inserisci(){
messaggi g;
cout << "Inserisci nome e cognome" <<endl;
cin >>g;
cout <<g<<endl;
}
ostream& operator<<(ostream uscita,messaggi &vaio){
uscita<<vaio.nome<<' '<<vaio.cognome;
return uscita;
}
istream& operator>>(istream& ingresso,messaggi &ciao){
ingresso>>ciao.nome>>ciao.cognome;
return ingresso;
}
void main(){
messaggi vai;
vai.inserisci();
// cout <<"Sei un grande"<<endl;
}
Se rendo NOME e COGNOME privati, come devo modificare il mio programma affinkè contiunui a funzionare ?


Rispondi quotando