Ripresa dell'esempio

  • 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
    }
    

© Ing. Stefano Salvi - All rights reserved