#ifndef __EstructuraABC__ #define __EstructuraABC__ #include #include #include #include #include #include "Registro.hpp" using namespace std; /// Clase base para manipular Altas-Bajas-Cambios. /** * Clase base para manipular Altas-Bajas-Cambios. * @author Antonio Carrillo Ledesma * @date Verano 2011 * @version 0.0.1 * @bug No errors detected * @todo ... */ class EstructuraABC { protected: /// Lista doblemente ligada de la libreria STL list lista; /// Iterador bidireccional para manipular a la lista list::iterator It; /// Borra todo el contenido de la lista void borrarTodo(void) { for (It = lista.begin(); It != lista.end(); ++It) { Registro *a = *It; delete a; } lista.clear(); } public: /// Constructor de la clase EstructuraABC(void) { } /// Destructor de la clase ~EstructuraABC(void) { borrarTodo(); } /// Adiciona un registro al final de la lista virtual int adicionar(void) = 0; /// Adiciona un registro en la posicion indicada en la lista virtual int adicionar(int pos) = 0; /// Adiciona un registro al final de la lista virtual int leerAdiciona(FILE *file) = 0; /// Visualiza el contenido del registro solicitado int visualiza(int pos); /// Visualiza todo el contenido de la lista int visualizaTodos(void); /// Visualiza el registro de la lista solicitado int borrar(int pos); /// Modifica el registro de la lista solicitado int modificar(int pos); /// Leer una lista de disco int leer(const char *file); /// Grabar una lista en disco int grabar(const char *file); /// Regresa el numero de registros en la lista inline int regresaNRegs(void) { return lista.size(); } }; /** * Clase base para manipular Altas-Bajas-Cambios. * * @example main.cpp */ #endif