#include "Fabbrica.h" #include #include "Libro.h" #include "Rivista.h" #include "Collana.h" Testo * Fabbrica::crea() { cout << "1) Libro"<< endl; cout << "2) Rivista" << endl; cout << "3) Collana" << endl; cout << "0) esci" << endl; int n; cin >> n; cin.ignore(256,'\n'); switch( n ) { case 1: return creaLibro(); case 2: return creaRivista(); case 3: return creaCollana(); default: return 0; } } Testo * Fabbrica::creaLibro() { char str[100]; cout << " Titolo: "; cin.getline( str, 100, '\n'); string t( str ); cout << " Autore: "; cin.getline( str, 100, '\n'); string a( str ); return new Libro( t, a ); } Testo * Fabbrica::creaRivista() { char str[100]; cout << " Titolo: "; cin.getline( str, 100, '\n'); string t( str ); unsigned int m, a; cout << " Mese: "; cin >> m; cout << " Anno: "; cin >> a; return new Rivista( t, m, a ); } Testo * Fabbrica::creaCollana() { char str[100]; cout << " Titolo: "; cin.getline( str, 100, '\n'); string t( str ); Collana * c = new Collana( t ); Testo * tt; do { tt = crea(); if ( tt != 0 ) c->inserisci( tt ); } while( tt != 0 ); return c; }