Salve a tutti,
circa un esercizio preso dal web: " Creare una classe Persona per memorizzare cognome, nome ed età di una persona. La classe deve
disporre di un opportuno costruttore, di metodi che consentano l’accesso in lettura a tutti gli attributi, di un
metodo per l’eventuale modifica dell’età e del metodo stampa_anagrafica per la stampa a video di tutte le
informazioni sulla persona. Successivamente, scrivere un programma che legga da tastiera i dati di due
persone, li memorizzi in oggetti distinti e indichi se le due persone sono coetanee."
Il codice scritto da me è il seguente:
#include <iostream>
#include <string>
using namespace std;
class Persona
{
public:
int eta;
// COSTRUTTORE
void Anagrafica()
{
cout << "Inserisci nome: ";
cin >> nome;
cout << "Inserisci cognome: ";
cin >> cognome;
cout << "Inserisci eta': ";
cin >> eta;
cout << " " << endl;
}
/*void Modifica_eta()
{
cout << "Modificare eta': ";
cin >> eta_mod;
eta = eta_mod;
}*/
void Stampa_anagrafica()
{
cout << " " << endl;
cout << "Anagrafica Cliente" << endl;
cout << nome << " " << cognome << " " << eta << endl;
}
private:
string nome, cognome;
int eta_mod;
};
int main()
{
Persona p1, p2;
p1.Anagrafica();
p2.Anagrafica();
system("cls");
p1.Stampa_anagrafica();
p2.Stampa_anagrafica();
if(p1.eta == p2.eta)
{
cout << "Eta' uguali";
}
return 0;
}
Ora, vorrei sapere se a livello di "information hiding" ho sbagliato qualcosa. Il dubbio è sulla variabile "eta" che, per eseguire la comparazione delle età, ho dovuto metterla pubblica. Un altro dubbio è circa la funzione Modifica_eta() che ho messo come commento in quanto non saprei quando usarla (magari con una condizione che si ripete ad ogni fine ciclo?). Anche in questo caso il dubbio verte sulla visibilità delle variabili.
Vorrei capire come scrivere il codice nella maniera corretta se per esempio un'altra persona dovesse utilizzarlo (quindi una correzione professionale senza usare programmazione avanzata).
Grazie!