Esempio di classe

  • Utilizzeremo una struct invece di una class, vedremo poi perchè
  • Questa è una classe astratta
  • Per primo riporterò il file header
    // Classe lista: lista.h
    #ifndef LISTA_H
    #define LISTA_H
    struct lista {
      lista *next; // Puntatore al prossimo elemento della lista
      lista () { next = (lista *) 0; };	// Costruttore di default - inline
      lista (lista *n) { next = n; };	// Costruttore con parametro - inline
      lista *Next () { return next; };	// Metodo inline
      lista *Search (const void *el);	// Metodo non inline
      virtual int compare (const void *el) = 0; // Metodo Virtuale Puro
    };
    #endif
  • Ed il file C che implementa Search
    // Classe lista: lista.cc
    #include "lista.h"       // Include la definizione della classe
    struct  lista *lista::Search (const void *el)
    {
      if (compare (el)) {	// Se il confronto fallisce
        if (Next () == 0)	// Se non ho prossimo elemento
          return 0;    	// Ritorno NULL - ricerca fallita
        else return Next () -> Search (el);  // Chiamo ricorsivamente la ricarca
      }
      else return this;	// Ho trovato, ritorno puntatore a me
    }

© Ing. Stefano Salvi - All rights reserved