Ver Mensaje Individual
  #7 (permalink)  
Antiguo 17/07/2013, 16:52
ambigus
 
Fecha de Ingreso: septiembre-2008
Mensajes: 221
Antigüedad: 16 años, 2 meses
Puntos: 1
Pregunta Respuesta: Programación Orientada en Objetos de C++

Gracias por tu ayuda!.. Este es otro código. El cambio del anterior es que la función "recu_recur()" es una función Recursiva.

¿Porqué en la linea 66 me dice: "Error: Hay demasiados argumentos en la llamada a función"?

Código C++:
Ver original
  1. reco_recur(apun->sig); // Cambio - Nueva Funcion Recursiva


Código C++:
Ver original
  1. #include "stdafx.h"
  2. #include "iostream"
  3. #include <conio.h>
  4. using namespace System;
  5. using namespace std;
  6.      
  7.     struct nodo
  8.     {
  9.         int datos;
  10.         nodo *sig;
  11.      
  12.     };
  13.      
  14.     class lista // Nueva clase - Lista
  15.     {
  16.         private:
  17.             nodo *inicial;
  18.         public:
  19.             lista();   // La lista  - Publico
  20.             ~lista();  // ~La lista - Publico
  21.      
  22.             void crear_lista(nodo *anterior, nodo *nuevo); // Funcion "crear_lista" - Publico
  23.             void leer_nodo(nodo *nuevo); // Funcion - Leer nodo
  24.             void imprime_nodo(nodo *apun);
  25.             void reco_recur(); // Cambio - Nueva Funcion Recursiva
  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() // Cambio - Nueva Funcion Recursiva
  61.     {
  62.         nodo *apun = inicial;
  63.         if (apun != NULL)
  64.         {
  65.             imprime_nodo(apun); // Imprime valor nodo
  66.             reco_recur(apun->sig); // Cambio - Nueva Funcion Recursiva
  67.         }
  68.     }
  69.      
  70.     lista::~lista() // Metodo "borrar_lista" - Publico
  71.     {
  72.         nodo *apun = inicial; // " * " es para crear nodo
  73.         while(apun != NULL)
  74.         {
  75.             cout << "borro" << endl;
  76.             inicial = apun->sig;
  77.             delete apun;
  78.             apun = inicial;
  79.         }
  80.     }
  81.      
  82.     int main()
  83.     {
  84.         nodo *anterior, *nuevo, *apun;
  85.         lista objlista; // Dar memoria a la lista
  86.         char resp;
  87.         anterior = NULL;
  88.         do
  89.         {
  90.             nuevo = new nodo;
  91.             objlista.crear_lista(anterior, nuevo); // Nuevo metodo
  92.             anterior = nuevo;
  93.             cout<<"Desea crear otro nodo? (s/n) "<<endl;
  94.             cin>>resp;
  95.             resp=tolower(resp);
  96.         }while (resp != 'n');
  97.         //inicio del recorrido de la lista
  98.         objlista.reco_recur();
  99.         getch();
  100.         objlista.~lista();
  101.         return 0;
  102.     }