Salve a tutti, vi chiedo un aiuto/qualche suggerimento sullo sviluppo di questo programma:
Fino al punto in cui viene chiesto che le classi siano polimorfe, ho svolto il quesito.Si realizzi in C++ una gerarchia Manoscritto, Lettera. la classe Manoscritto è rappresenta un documento in formato elettronico, e può essere specializzato in una lettera. La classe Manoscritto contiene le seguenti variabili membro: - Codice, identificativo numerico (intero) - Autore (stringa allocata dinamicamente) - numpag, numero intero, numero di pagine - Formato, stringa allocata dinamicamente, formato del file La classe Lettera aggiunge le variabili membro: - Mittente, stringa allocata dinamicamente - Destinatario, stringa allocata dinamicamente Le classi devono prevedere gli opportuni costruttori, e devono gestire correttamente l’estensione dinamica fornendo le opportune funzionalità. Devono inoltre fornire le funzioni visualizza_dati e memorizza_dati. Si vuole un comportamento polimorfo. Si realizzi quindi una classe Elenco di manoscritti. La sessione di scrittura su file viene gestita dall’elenco mediante una sua opportuna funzione membro che definisce la variabile di tipo stream. La funzione memorizza_dati si limita a riceverla come parametro di ingresso. L'Elenco è realizzato ricorrendo ad un vettore allocato staticamente. La funzione di inserimento inserisce un manoscritto in ordine (rispetto al codice) e lancia una eccezione nel caso il codice sia già presente nell'elenco, la funzione di eliminazione elimina effettuando una ricerca per codice. L'eccezione è di tipo Duplicato, classe fornita dallo studente. Si strutturi il codice secondo le appropriate tecniche di programmazione modulare
Avrei realizzato anche il vettore statico che rappresenta l'elenco di Manoscritti, ma qui cominciano dei dubbi.
Nella compilazione, in corrispondenza della linea "ofstream outfile(a, ios:ut);", mi viene dato l'errore "variable `std:fstream outfile' has initializer but incomplete type ". Non riesco a capire a cosa si riferisca.
Questa linea, come vedete, fa parte dell'implementazione della funzione di scrittura su file che ho provato a realizzare.
Per l'ultima parte, non ho neppure provato a realizzare l'eccezione in quanto non capisco come posso realizzare una funzione di inserimento che metta i manoscritti in ordine.
Devo utilizzare un algoritmo di riordinamento che viene usato dopo ogni inserimento? Ed in che senso memorizza_dati si limita a riceverla come parametro in ingresso? Sta parlando della funzione delle due classi o devo definire una memorizza_dati anche per l'elenco?
Vi posto il mio codice:
manoscritto.h : http://pastebin.com/Ji3Nq35z
manoscritto.cpp : http://pastebin.com/4i9z59r6
lettera.h : http://pastebin.com/njq6xBnb
lettera.cpp : http://pastebin.com/jxhaGYdF
ElencoManoscritti.h : http://pastebin.com/Cmp8PfxC
ElencoManoscritti.cpp : http://pastebin.com/8P8egdGA
Vi ho messo tutto il codice, ma quello di maggior interesse è ElencoManoscritti.
Grazie mille in anticipo!