Raga vi spiego subito il mio problema. Ho creato due classi: Personale e Impiegato che è derivata dalla prima. Definisco due metodi di stampa differenti. Quando vado nel main e uso il metodo di stampa, mi funziona quello della Classe Personale e non quello di Impiegato: come mai? Vi posto il codice:
codice:#include "Personale.h" #include <string> #include <iostream.h> using namespace std; int Personale::count_; Personale::Personale(void) { } Personale::Personale(string nome, string cognome, int stipendio, int eta): nome_(nome), cognome_(cognome), stipendio_(stipendio), eta_(eta) { matricola_ = count_++; } Personale::~Personale(void) {}; void Personale::setNome(string nome) { nome_ = nome; } void Personale::setCognome(string cognome) { cognome_ = cognome; } void Personale::setEta(int eta) { eta_ = eta; } void Personale::setStipendio(int stipendio) { stipendio_ = stipendio; } string Personale::getNome() const { return nome_; } string Personale::getCognome() const { return cognome_; } int Personale::getEta() const { return eta_; } int Personale::getMatricola() const { return matricola_; } int Personale::getStipendio() const { return stipendio_; } int Personale::getCount() const { return count_; } void Personale::stampa() { cout << "Personale" << endl; cout << "Nome:" << nome_.c_str() << "\tCognome:" << cognome_.c_str() << "\tEta':" << eta_ << "\tStipendio:" << stipendio_ << endl << endl << endl; }e questo è il maincodice:#include "Impiegato.h" #include <string> #include <iostream.h> using namespace std; int Impiegato::count3_; Impiegato::Impiegato(string nome, string cognome, int stipendio, int eta, int bonus): Personale(nome,cognome,stipendio,eta) { bonus_ = bonus; count3_++; } Impiegato::~Impiegato(void){}; void Impiegato::setStipendio(int ore) { stipendio_ = stipendio_ + bonus_; } int Impiegato::getCount3() const { return count3_; } void Impiegato::stampa() { cout << "Impiegato" << endl; cout << "Nome:" << nome_.c_str() << "\tCognome:" << cognome_.c_str() << "\tEta':" << eta_ << "\tStipendio:" << stipendio_ << "\tBonus:" << bonus_ << endl << endl << endl; }
codice:#include "Personale.h" #include "Impiegato.h" #include <iostream.h> void main() { Personale p[]; Personale pe1("Riccardo","Rizzo",2000,25), pe2("Lorenzo","Sciala",1000,24); Impiegato im1("Lenticchia","Casolino",550,20,50), im2("Alfo","Scialla",1250,19,50); p[0] = pe1; p[1] = pe2; p[2] = im1; p[3] = im2; for(int i=0; i<4; i++) { p[i].stampa(); } }

Rispondi quotando
