IMPLEMENTAZIONE "PRESTITI" TRAMITE LISTA

di il
1 risposte

IMPLEMENTAZIONE "PRESTITI" TRAMITE LISTA

Salve a tutti ragazzi,

ho un dubbio su questa parte di un esercizio:
"[...] Un prestito contiene l’indicazione del libro prestato, la data del prestito e la data di restituzione (per definizione 30 giorni a partire dalla data del prestito). I prestiti vengono memorizzati in una lista(mantenuta in maniera ordinata per data di restituzione) [....]"
In particolare, il mio dubbio riguarda il fatto che i prestiti debbano essere memorizzati in una lista.
OSS: Un prestito è una classe derivata di "Libro".

Così è come ho pensato di fare (Riporto soltanto l'header file):

//LoanBook.h

#ifndef LOAN_BOOK_MANAGEMENT_H
#define LOAN_BOOK_MANAGEMENT_H

#include "Libro.h"
#include "Date.h"
#include "DLinkedList.h"

template <typename T>
class LoanBook{
	public:
		LoanBook(const string& id, const string& newAuthors, const string& newTitle, int newYear, const string& newPosition, double newValue, const string& Indic, const Date& dp, const Date& dr); 
		string getIndicazione() const;
		void setIndicazione(const string& Indic); 
		void getDataP() const;
		void setDataP(const Date& dp); 
		void getDataR() const;
		void setDataR(const Date& dr); 
		
		virtual string toString() const override;
	
	private:
		DLinkedList<T> L;
		string indicazione;
		const Date data_prestito;
		const Date data_restituzione;
};
#endif
dove DLinkedList sarebbe una lista doppiamente concatenata (non vi allego l'header perché è quello "standard" diciamo).

A questo punto, nel main del programma principale come faccio a mettere i prestiti nella Lista?
Grazie mille a tuti!

1 Risposte

  • Re: IMPLEMENTAZIONE "PRESTITI" TRAMITE LISTA

    Ogni nodo della lista (che sarà una struct) avrà un puntatore a LoanBook, oltre al nodo successivo e precedente. Oppure puoi fargli contenere direttamente un oggetto LoanBook. La classe List avrà funzioni per aggiungere e rimuovere e le userai nel main.

    Comunque è concettualmente sbagliato derivare la classe prestito dalla classe libro solo per riutilizzare qualche dato membro. Devi pensare che un oggetto di classe derivata È anche un oggetto della classe base.
Devi accedere o registrarti per scrivere nel forum
1 risposte