Grazie della risposta!!!posto il codice della classe Amministratore e della classe Iscritto è un pò lunghetto spero che non ci siano problemi per questo!
codice:
#ifndef AMMINISTRATORE_H
#define AMMINISTRATORE_H
#include <string>
using std::string;
#include "persona.h"
class Amministratore : public Persona
{
public: //nome, cognome, età, ID, username, password
Amministratore(string = "", string = "", int = 18, int = 0, string = "", string = "");
void setUser(string);
void setPass(string);
string getUser();
string getPass();
int getID();
virtual void stampa();
//funzione virtuale pura ridefinita per rendere la classe concreta
//in questo caso l'amministratore non ha mensile da pagare quindi viene semplicemente visualizzato un messaggio!
virtual void setPagamentoMensile(int);
private:
//dati membro ereditati
//char nome[21];
//char cognome[31];
//int età;
//dati membro specifici della classe
int ID; //(per l'amministratore e' sempre 0)
char user[21];
char pass[11];
};
#endif
CLASSE ISCRITTO
#ifndef ISCRITTO_H
#define ISCRITTO_H
#include <iostream>
#include <string>
#include "data.h"
#include "persona.h"
class Iscritto : public Persona
{
public: //nome, cognome, età, ID, giorno,mese,anno, corso, pagamento mensile, username, password
Iscritto(string = "", string = "", int = 18, int = 1, int = 0, int = 0, int = 0, int = 1, float = 0, string = "", string = "");
//viene impostato tutto a zero per default
//le funzioni set e get per impostare e restituire i dati membro ereditati, sono state ereditate
Data getDataIscrizione();
int getCorso();
float getPagamentoMensile();
int getID();
string getUser();
string getPass();
void setDataIscrizione(int, int, int);
void setCorso(int);
void setUser(string);
void setPass(string);
void setID(int);
//funzione virtuale non pura che verrà riscritta
virtual void stampa();
//funzione virtuale pura che DEVE essere ridefinita per rendere la classe concreta
virtual void setPagamentoMensile(int);
private:
//dati membro ereditati
//char nome[21];
//char cognome[31];
//int età;
//dati membro specifici della classe
Data dataIscrizione;
int corso;
int ID;
float pagamentoMensile;
char user[21];
char pass[11];
};
#endif
//funzione virtuale stampa riscritta di Amministratore
void Amministratore::stampa()
{
cout << "\n";
cout << "** riepilogo dati dell'amministratore: \n";
Persona::stampa(); //riutilizzo della funzione stampa della classe base
cout << "\n** la tua username e': " << getUser();
cout << "\n** la tua password e': " << getPass();
cout << "\n";
}
//funzione virtuale stampa riscritta di Iscritto
void Iscritto::stampa()
{
cout << "\n";
cout << "** riepilogo dati iscritto numero: " << getID();
Persona::stampa(); //riutilizzo della funzione stampa della classe base
cout << "\n** data iscrizione: " << getDataIscrizione();
cout << "\n** sei iscritto al corso con ID: " << getCorso();
cout << "\n** pagamento mensile: " << getPagamentoMensile();
cout << "\n** username: " << getUser();
cout << "\n** password: " << getPass();
cout << "\n";
}
//funzione virtuale non pura nella classe base
void Persona::stampa()
{
cout << "\n** nome e cognome: " << getNome() << ' ' << getCognome()
<< "\n** eta': " << getEtà();
}