Prototipo del l'operatore ridefinito e del metodo utilizzato:
- Codice:
std::ostream& operator<<(std::ostream&, const Data&);
std::string formato_breve();
Implementazione della ridefinizione e del metodo:
- Codice:
std::ostream& operator<<(std::ostream& stream, const Data& d)
{
stream << d.formato_breve();
return stream;
}
std::string Data::formato_breve()
{
return std::to_string(giorno) + "/" +
std::to_string(mese) + "/" + //giorno, mese e anno sono private
std::to_string(anno);
}
Main:
- Codice:
Data d1{ 2, 1, 2017 };
cout << d1 << endl;
Visual studio mi dà qusti due errori di compilazione:
Gravità Codice Descrizione Progetto File Riga Stato eliminazione
Errore C2662 'std::string Data::formato_breve(void)': impossibile convertire il puntatore 'this' da 'const Data' a 'Data &'
Gravità Codice Descrizione Progetto File Riga Stato eliminazione
Errore C2804 'operator <<' (binario) ha troppi parametri
Gravità Codice Descrizione Progetto File Riga Stato eliminazione
Errore (attivo) E1086 l'oggetto include qualificatori di tipo non compatibili con la funzione membro funzione "Data::formato_breve"
Potreste aiutarmi a risolverli per favore?