codice:
	#include <iostream.h>
#include <string.h> // classe club (base) 
class club {
protected:
	char squadra[80]; 
	char serie[2]; 
public: 
	club(char *sq, char *se);
	club(const club &l);
};
//FINE dichiarazioni
club::club(char *sq, char *se)  {
	strcpy(squadra, sq); 
	strcpy(serie,se); 
}
club::club(const club &l) {
	strcpy(squadra, l.squadra); 
	cout << "costruttore di copia club";
}
//FINE club
//classe engage
class engage { 
protected:
	int anno_inizio; 
	int anno_fine; 
	double inga; 
public: 
	engage(int ai, int af, double ing);
	engage(const engage &o);
	double getengage();
}; 
//FINE dichiarazioni
engage::engage(int ai, int af, double ing) {
	anno_inizio = ai; 
	anno_fine = af; 
	inga = ing; 
}
engage::engage(const engage &o) {
	anno_inizio = o.anno_inizio; 
	anno_fine = o.anno_fine;
	inga = o.inga;
	cout << "costruttore di copia engage";
}
double engage::getengage() {
	return (inga / (anno_fine-anno_inizio)); 
}
//FINE engage
//classe giocatore
class giocatore : public club, public engage { 
protected:
 char nome[50]; 
 char cognome[50]; 
 char data_nascita[20]; 
 char luogo_nascita[50]; 
public: 
 friend void stampa_engage(giocatore obj); 
 giocatore(char *sq, char *se, int ai, int af, double ing,
 		  char *n, char *c,char *dn, char *ln);
 
 giocatore(giocatore &ogg);
 char *getname();
 char *getcogn();
 friend void funzione(giocatore obj);
};
//FINE dichiarazioni
void funzione(giocatore obj){
	cout << obj.anno_fine;
}
giocatore::giocatore(char *sq, char *se, int ai, int af, double ing, 
					 char *n, char *c,char *dn, char *ln) : 
												club(sq, se),  engage(ai, af, ing) {
	strcpy(nome,n); 
	strcpy(cognome,c); 
	strcpy(data_nascita,dn); 
	strcpy(luogo_nascita,ln); 
}
giocatore::giocatore( giocatore &ogg) : club(ogg.squadra, ogg.serie), 
engage(ogg.anno_inizio, 
	   ogg.anno_fine,
	   ogg.inga) {
	strcpy(nome,ogg.nome);
	strcpy(cognome,ogg.cognome);
	strcpy(data_nascita, ogg.data_nascita); 
	strcpy(luogo_nascita, ogg.data_nascita);
}
char* giocatore::getname() {
	return nome;
}
char* giocatore::getcogn() {
	return cognome;
}
void stampa_engage(giocatore obj){ 
cout << "il suo ingo annuo è di: " << obj.getengage(); 
} 
//FINE giocatore
int main() {
giocatore maldini("Milan", "A", 2000, 2006, 
                  5000000, "Paolo", "Maldini",
                  "12 Aprile 1975", "Milano");
	
	cout << maldini.getcogn() << endl;
	cout << maldini.getengage() << endl;
	cout << maldini.getname() << endl;
	funzione(maldini);
	return 0;
}