codice:
#include <iostream>#include <sstream>
#include <limits>
using namespace std;
class Applicazione {
private:
long id;
string nome;
string descrizione;
public:
Applicazione(long id, string nome, string descrizione)
:id(id), nome(nome), descrizione(descrizione) {}
string to_string(void);
};
string Applicazione::to_string(void) {
ostringstream oss;
oss << id << ") " << nome << endl << descrizione;
return oss.str();
}
class Store {
private:
Applicazione *app[100];
int n;
public:
Store():n(0) { }
~Store() {
for(int i = 0; i < this->n; ++i)
delete this->app[i];
}
void aggiungi_applicazione(void);
void stampa_applicazioni(void);
};
void Store::aggiungi_applicazione(void) {
long id;
string nome, descrizione;
cout << "Inserisci l'id dell'applicazione: ";
cin >> id;
cin.ignore(numeric_limits<streamsize>::max(), '\n');
cout << "Inserisci il nome dell'applicazione: ";
getline(cin, nome);
cout << "Inserisci una descrizione dell'applicazione:" << endl;
getline(cin, descrizione);
this->app[(this->n)++] = new Applicazione(id, nome, descrizione);
}
void Store::stampa_applicazioni(void) {
for(int i = 0; i < this->n; ++i)
cout << this->app[i]->to_string() << endl;
}
int main() {
Store s;
s.stampa_applicazioni();
s.aggiungi_applicazione();
s.stampa_applicazioni();
s.aggiungi_applicazione();
s.stampa_applicazioni();
return 0;
}