Esercitazione sull'utilizzo dei Costruttori con e senza passaggio di parametri, degli ambienti public e private, dei metodi e degli attributi.
#include
<iostream>
using
namespace std;
class persona{ //dichiarazione della classe persona
public: // con public rendo
i metodi accessibili dal main()
persona(); //costruttore senza passaggio di parametri
persona(int
a); //costruttore
con passaggio di un parametro
~persona(); //distruttore
void
aggiorna(); //metodo
aggiorna
void
visualizza(); //metodo
visualizza
private: // con private
rendo gli attributi non accessibili al di fuori della classe a cui appartengono
char
nome[15]; //dichiarazione
stringa nome
char
cognome[15]; //dichiarazione
stringa cognome
int eta; //dichiarazione
variabile eta
};
persona::persona() //definizione del
costruttore senza passaggio di parametri
{
cout <<" Inserisci Nome: ";
cin >> nome; //salvo l'input da utente nella stringa nome
cout << endl <<" Inserisci Cognome: ";
cin >> cognome;
//salvo l'input da utente nella stringa cognome
cout << endl <<" Inserisci eta': ";
cin >> eta; //salvo l'input da utente nella variabile eta
}
persona::persona(int a)
//definizione del costruttore con passaggio di
un parametro
{
cout << endl <<" Inserisci Nome: ";
cin >> nome; //salvo l'input da utente nella stringa nome
cout << endl <<" Inserisci Cognome";
cin >> cognome;
//salvo l'input da utente nella stringa cognome
eta=a; //passo il valore del parametro a ricevuto dalla chiamata
nel main() alla variabile eta
cout << endl <<"L'eta' passata dal main e':
" <<a<< endl;
}
void persona::visualizza()
//definizione metodo visualizza
{ cout << endl << " Dati dipendente:
"<< nome <<" - " <<cognome <<" -
" <<eta <<endl;
//visualizzo i dati inseriti dall'utente
}
persona :: ~persona()
//definizione del distruttore per comprendere
funzionamento
{
cout <<
"sono il distruttore";
}
void persona :: aggiorna()
//definizione metodo aggiorna
{
visualizza(); //chiamata al
metodo visualizza
char mod; //variabile char di
appoggio per scelta operazione utente
do{
cout <<
" Vuoi modificare i dati inseriti? S/N";
//chiedo conferma
all'utente per la modifica o meno dei dati inseriti
cout <<
endl;
cin >>
mod;
if
((mod=='S')||(mod=='s')) //se l'utente vuole modificare i dati
persona(); //richiamo il costruttore
else if
((mod!='N')&&(mod!='n'))
//altrimenti controllo se la risposta fornita dall'utente è
diversa da n o N
{
cout <<
" Dato non corretto";
//in tal caso non avendo risposto ne con s-S ne con n-N vuol
dire che ha dato una risposta non corretta e glielo comunico
}
}while(((mod=='S')||(mod=='s'))||((mod!='n')&&(mod!='N')));
//continuo la
procedura mente la risposta è diversa da n-N
}
main()
{
char menu;
do{
cout <<
"Compito su lezione 24/09/2014";
cout << endl
<< endl;
cout <<
"Inserimento da istanza oggetto dipendente con Costruttore senza passaggio
\ndi parametri:";
cout << endl
<< endl;
persona
dipendente;
//istanzio
l'oggetto dipendente di classe persona tramite costruttore senza passaggio di
parametri
cout <<
"Inserimento da istanza oggetto dipendente con Costruttore con passaggio
\ndi parametri:";
cout << endl;
persona
dipendenteInt(5);
//istanzio l'oggetto dipendente di classe persona tramite
costruttore con passaggio di un parametro
cout <<
"Richiamo a metodo 'Aggiorna()' con al suo interno richiamo al metodo
'Visualizza'";
cout << endl
<< endl;
dipendente.aggiorna(); //chiamata al metodo aggiorna dell'oggetto dipendente
cout <<
"Inserimento da vettore di oggetti dipendente con Costruttore senza
passaggio (3 elementi) \ndi parametri:";
cout << endl
<< endl;
persona
dipv[3];
//istanzio
un vettore di oggetti dipendente di classe persona con tre elementi tramite
costruttore senza passaggio di parametri
cout <<
"Vuoi ripetere il programma? ";
cout <<
endl;
cin >>
menu;
}while((menu=='s')||(menu=='S')); //se l'utente non
vuole ripetere il programma, fine
cout << endl << endl << endl;
return 0;
}
Nessun commento:
Posta un commento