prof. Nunzio Brugaletta
C++: programmazione e oggetti

EnneBi - Programmazione
Avanti - Indietro - Inizio

Interfaccia e implementazione dei metodi di una classe

Negli esempi riportati tutta la definizione della classe è stata inserita in un unico file. In generale, però, il codice di una classe, una volta che questa è definita e testata, varia raramente. Cambiano invece molto spesso i programmi che utilizzano la classe. In progetti di grosse dimensioni ricompilare, ogni volta che si modifica qualcosa, anche parti di codice testate solo per il fatto di essere incluse, produce tempi lunghi di attesa. È per questo motivo che può essere conveniente scindere l'interfaccia della classe (quello che l'utilizzatore ha necessità di conoscere) dall'implementazione dei metodi della classe. È più opportuno quindi organizzare i sorgenti, per esempio nel caso della classe libreria e del programma di gestione di prestiti, nel modo seguente:

// file c_libreria4 con interfaccia della classe ------------------	+
	
#ifndef C_LIBRERIA4	
#define C_LIBRERIA4	
	
#include <vector>	
using namespace std;	
	
namespace biblioteca{	
  template <class tag>
  class libreria{	
  public:	
    ...	
  protected:	
    ...	
  };	
}	
#endif	
	
// fine c_libreria4 -----------------------------------------------	+	

// file c_libreria4.cpp con implementazione metodi della classe ---	+
	
#include “c_libreria4”	
namespace biblioteca{	
  ...	
  template <class tag>	
  int libreria<tag>::aggiungi(tag elem)                             
  ...	
  template <class tag>	
  bool libreria<tag>::estrai(int quale,tag& elem) const	
  ...	
  template <class tag>	
  bool libreria<tag>::aggiorna(int quale,tag elem)	
  ...	
}	

// fine c_libreria4.cpp --------------------------------------------+

// file prestiti4.cpp con gestione prestiti ------------------------+	
	
...	
#include “c_libreria4”	
...	
	
// fine prestiti4.cpp ----------------------------------------------+

Occorre, infine, compilare i due file c_libreria4.cpp e prestiti4.cpp e linkarli assieme affinché tutto funzioni.



Avanti - Indietro - Inizio

http://ennebi.solira.org
ennebi@solira.org