- Riprendiamo l'esempio delle liste della volta precedente
- Questa è una classe astrattaperchè compare è dichiarato = 0
- Per primo riporterò il file header
// Classe lista: listc.h
#ifndef LISTC_H
#define LISTC_H
class list {
list *next; // private
protected :
virtual int compare (const void *el) = 0; // Virtuale pura
list *Next () { return next; }; // Inline
public :
list (list *n) { next = n; }; // Costruttore Inline
list *Search (const void *el); // Metodo pubblico
};
#endif
- Ed il file C++ che implementa Search
// Classe lista: listc.cc
#include "listc.h"
list *list::Search (const void *el)
{
if (compare (el)) // Chiama 'compare', virtuale
return Next () -> Search (el); // Se non e' questa, cerca la prossima
else return this; // Se e' questa, ha finito
}
|