Nonostante abbia dichiarato una funzione ostream per sovraccaricare l'operatore <<, quando tento di accedere ai membri privati di una classe riscontro il seguente errore:
error: 'std::string std::freni::marca' is private
..\src\componenti\freni.cpp:23:10: error: within this context
class freni {
friend ostream & operator <<(ostream &,const freni&);
public:
freni(string &,string&);
string getMarca()const;
string getTipo()const;
private:
string marca;
string tipo;
};
nel cpp:
freni::freni(string & casa, string & tip):marca(casa),tipo(tip)
{
cout<<"Freno costruito";
}
string freni::getMarca()const{
return marca;
}
string freni::getTipo()const {
return tipo;
}
ostream & operator <<(ostream &out, const freni &f1){
out<<f1.marca<<" "<<f1.tipo;
return out;
}
volevo evitare di usare le funzioni getTipo e getMarca per stampare marca e tipo