Ver Mensaje Individual
  #10 (permalink)  
Antiguo 17/07/2013, 18:17
Avatar de razpeitia
razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: Programación Orientada en Objetos de C++

Como te dije en el post anterior. No agregaste la declaración de la función y no necesitas pasarle argumentos.

Código C++:
Ver original
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.      
  5.     struct nodo
  6.     {
  7.         int datos;
  8.         nodo *sig;
  9.      
  10.     };
  11.      
  12.     class lista // Nueva clase - Lista
  13.     {
  14.         private:
  15.             nodo *inicial;
  16.         public:
  17.             lista();   // La lista  - Publico
  18.             ~lista();  // ~La lista - Publico
  19.      
  20.             void crear_lista(nodo *anterior, nodo *nuevo); // Funcion "crear_lista" - Publico
  21.             void leer_nodo(nodo *nuevo); // Funcion - Leer nodo
  22.             void imprime_nodo(nodo *apun);
  23.             void reco_recur(); // Cambio - Nueva Funcion Recursiva
  24.             void reco_recur(nodo *apun); // Cambio - Nueva Funcion Recursiva
  25.  
  26.     };
  27.      
  28.     lista::lista()
  29.     {
  30.         inicial=NULL; // Inicializa NULL
  31.     }
  32.      
  33.     void lista::leer_nodo(nodo *nuevo) // Método - Leer nodo
  34.     {
  35.         cout<<"Entre valor del nodo"<<endl; // Permite ingresar la cantidad de Nodos
  36.         cin>>nuevo->datos;
  37.     }
  38.      
  39.     void lista::crear_lista(nodo *anterior, nodo *nuevo)
  40.     {
  41.         if(anterior == NULL)
  42.         {
  43.             nuevo->sig = inicial;
  44.             leer_nodo(nuevo); // Lee 1ra vez
  45.             inicial = nuevo;
  46.         }
  47.         else
  48.         {
  49.             nuevo->sig = anterior->sig;
  50.             anterior->sig = nuevo;
  51.             leer_nodo(nuevo); // Lee N vez
  52.         }
  53.     }
  54.      
  55.     void lista::imprime_nodo(nodo *apun) // Cambio
  56.     {
  57.         cout<<"El valor es :    "<<apun->datos<<endl;
  58.     }
  59.  
  60.     void lista::reco_recur()
  61.     {
  62.         reco_recur(inicial);
  63.     }
  64.      
  65.     void lista::reco_recur(nodo *apun) // Cambio - Nueva Funcion Recursiva
  66.     {
  67.         if (apun != NULL)
  68.         {
  69.             imprime_nodo(apun); // Imprime valor nodo
  70.             reco_recur(apun->sig); // Cambio - Nueva Funcion Recursiva
  71.         }
  72.     }
  73.      
  74.     lista::~lista() // Metodo "borrar_lista" - Publico
  75.     {
  76.         nodo *apun = inicial; // " * " es para crear nodo
  77.         while(apun != NULL)
  78.         {
  79.             cout << "borro" << endl;
  80.             inicial = apun->sig;
  81.             delete apun;
  82.             apun = inicial;
  83.         }
  84.     }
  85.      
  86.     int main()
  87.     {
  88.         nodo *anterior, *nuevo, *apun;
  89.         lista objlista; // Dar memoria a la lista
  90.         char resp;
  91.         anterior = NULL;
  92.         do
  93.         {
  94.             nuevo = new nodo;
  95.             objlista.crear_lista(anterior, nuevo); // Nuevo metodo
  96.             anterior = nuevo;
  97.             cout<<"Desea crear otro nodo? (s/n) "<<endl;
  98.             cin>>resp;
  99.             resp=tolower(resp);
  100.         }while (resp != 'n');
  101.         //inicio del recorrido de la lista
  102.         objlista.reco_recur();
  103.         objlista.~lista();
  104.         return 0;
  105.     }