Buongiorno a tutti.
Sto avendo alcuni problemi sulla creazione di un operatore di una classe derivata che prenda in riferimento un attributo privato della classe base.
Ho trovato una soluzione ed è stata quella di sostituire "private:" con "protected:" e pare che funzioni.
Ma se volessi lasciare il privato?
Questa è la classe base:
class scarpa{
private:
int id_scarpa;
string produttore;
int taglia;
int prezzo;
public:
void set_scarpa(int,string,int,int);
int get_id();
string get_prod();
int get_tg();
int get_p();
scarpa(){};
~scarpa(){};
};
Questa è la classe derivata:
class scarpa_donna:public scarpa{
private:
int altezza_tacco;
public:
void set_scarpa_donna(int,string,int,int,int);
int get_h();
void operator+(int);
scarpa_donna(){};
~scarpa_donna(){};
};
Notate nella classe derivata come abbia già dichiarato l'operatore + che deve considerare il prezzo presente nella classe base:
void scarpa_donna::operator+(int perc){
prezzo=prezzo+(prezzo*perc)/100;
}
Spero in un vostro aiuto.
Grazie in anticipo.