Ciao Gaten...
Un modo strutturare Client potrebbe essere il seguente:
Da notare l'overloading dell'operatore di assegnamento, che dovrebbe essere seguito da quello dell'operatore di confronto, etc (in questo modo realizzi una classe più carina e impari qualcosina in più).codice:class Client { private: string name; //nome del cliente string surname; //cognome del cliente unsigned int age; //età public: private: public: Client (string _name, string _surname, unsigned int _age); //costruttore void setName (string _name); //mi permette di settare il nome void setSurname (string _surname); //mi permette di settare il cognome void setAge (unsigned int age); //mi permette di settare l'età string getName (); //mi permette gi ottenere il nome string getSurname (); //mi permette di ottenere il cognome unsigned int getAge (); //mi permette di ottenere l'età Client &operator= (const Client &rhs); //operatore di assegnamento [...] };
Da notare anche l'utilizzo del modificatore "private" sugli attributi (non permetto che vengano modificati dall'esterno, per ovvi motivi): l'utente per ottenere il loro valore e per settarlo dovrà utilizzare i metodi get e set rispettivamente.
Il codice potrà sembrare insensatamente lungo, ma alla fine vale la pena scrivere qualcosa in più, per ottenere un prodotto finale più chiaro e "usabile".
Naturalmente non dimenticare l'overloading degli operatori di inserimento nello stream (<<) e di estrazione dallo stream (>>), per la classe ostream :
Per il resto del programma puoi lavorare come hai sempre fatto (prima cammina e poi corri)codice:ostream& operator<< (ostream& os, const Client& client) //overloading operatore di inserimento nello stream di ostream { return os << "Nome: " << client.getName () << endl << "Cognome: " << client.getSurname () << endl << "Età: " << client.getAge () << endl; } [...]
Un esempio di programma potrebbe essere il seguente:
Utilizzando quindi il classico approccio procedurale per gestire le classi da te create più altri oggetti della standard library di cpp (come deque).codice:#include <iostream> #include <deque> using namespace std; bool dispatcher (deque<Clients> &clients); //"gestisce" le richieste dell'utente chiamando le opportune procedure main () { deque<Client> clients; //questi sono tutti i clienti while (dispatcher(clients)); //main loop return EXIT_SUCCESS; } bool dispatcher (deque<Clients> &clients) { int request; cout << "\t1 . Inserisci Cliente:\n"; cout << "\t2 . Cerca Cliente:\n"; cout << "\t0 . Esci:\n"; cin >> request; switch (request) { case 1: ... break; case 2: ... break; case 0: return false; default: ... }; return true; }
Troverai semplice lavorare con la classe Client.
Ad esempio per stampare un cliente ti basterà fare
Oppure per stamparli tutti:codice:Client c("Paolo", "Rizz.", 20); cout << c;
Molto più semplice e compatto.codice:for (deque<Client>::iterator i = clients.begin(); i != clients.end(); i++) cout << *i << endl;
Prova a fare una tua implementazione.
Considera che ho buttatò giù il codice senza provalo quindi potrei aver fatto errori grossolani e non.

 
			
			 
					
					
					
						 Rispondi quotando
  Rispondi quotando