GrG
17-06-2013, 23:31
Buonasera,
avevo un altro dubbio (che credo sia abbastanza rapido)..
Sto definendo una classe che mi modella un oggetto persona, solo che ho la necessità di ridefinire l'operatore << per fare in modo di ritornare una stringa che contenga il nome della persona con a fianco l'età (che sono due variabili private della classe)
Qualcosa del tipo:
string& Persona::operator<<(string& s)
{
s = this->nome+" "+this->eta+" "+s;
return s;
}
Solo che in C++ non c'è una conversione implicita da intero a stringa.. considerando che sarebbe meglio non usare itoa e che non posso usare:
string eta;
eta << this->eta;
eta.str();
visto che g++ mi dice che non trova l'operatore<<:
"error: no match for ‘operator<<’ in ‘eta << ((Persona*)this)->Persona::eta’"
Ho importato le seguenti librerie:
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
Il fatto è che g++ non mi va a cercare l'operatore << in std ma nella stessa classe.. come posso fare? Grazie
avevo un altro dubbio (che credo sia abbastanza rapido)..
Sto definendo una classe che mi modella un oggetto persona, solo che ho la necessità di ridefinire l'operatore << per fare in modo di ritornare una stringa che contenga il nome della persona con a fianco l'età (che sono due variabili private della classe)
Qualcosa del tipo:
string& Persona::operator<<(string& s)
{
s = this->nome+" "+this->eta+" "+s;
return s;
}
Solo che in C++ non c'è una conversione implicita da intero a stringa.. considerando che sarebbe meglio non usare itoa e che non posso usare:
string eta;
eta << this->eta;
eta.str();
visto che g++ mi dice che non trova l'operatore<<:
"error: no match for ‘operator<<’ in ‘eta << ((Persona*)this)->Persona::eta’"
Ho importato le seguenti librerie:
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
Il fatto è che g++ non mi va a cercare l'operatore << in std ma nella stessa classe.. come posso fare? Grazie