Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: maferavagar en 8 Julio 2015, 02:02 am



Título: Que significa "expected..."
Publicado por: maferavagar en 8 Julio 2015, 02:02 am
Buenas Tardes, una pregunta saben que significa "expected init-declarator before Insertar_Nodo" y en esa misma linea me dice "expected ',' or ';' before Insertar_Nodo", este error me sale despues de "//Declaro las funciones que tiene el programa"

solo pongo una parte de mi codigo:
Código
  1. class Nodo
  2. {
  3.    private:
  4.                int dato;
  5.                Nodo *HijoIzquierdo, *HijoDerecho,*Raiz;
  6.    public:
  7.                Nodo* Insertar_Nodo(int valor, Nodo*subArbol);
  8.                //void EnOrden(Nodo*);
  9.                //void PreOrden(Nodo*);
  10.                void PostOrden(Nodo*);
  11.                //int Nivel_arbol(Nodo*);
  12.                //int NumeroNodo(Nodo*);
  13.                //int FE(Nodo*);
  14.                int Total_hojas2(Nodo*);
  15.                int Total_hojas(Nodo*);
  16.                //int Suma_nodos(Nodo*);
  17.  
  18. };
  19.  
  20. //Declaro las funciones que tiene el programa
  21. Nodo*::Nodo Insertar_Nodo(int valor,Nodo*subArbol)
  22. {
  23.   if(subArbol==NULL)
  24.   {
  25.      subArbol=new Nodo;
  26.      subArbol->HijoIzquierdo=subArbol->HijoDerecho=NULL;
  27.      subArbol->dato=valor;
  28.   }
  29.   else
  30.  
  31.      if(valor<subArbol->dato)
  32.         subArbol->HijoIzquierdo=InsertaNodo(valor, subArbol->HijoIzquierdo);
  33.  
  34.      else
  35.         subArbol->HijoDerecho=InsertaNodo(valor, subArbol->HijoDerecho);
  36.   return(subArbol);
  37. }
  38.  
  39.  

Mod: Segundo aviso, los códigos deben llevar etiquetas GeSHi (están ubicadas arriba de los emoticones a la derecha) los titulos de los temas deben ser descriptivos al problema, modificalo


Título: Re: Que significa "expected..."
Publicado por: vangodp en 8 Julio 2015, 09:44 am
expected init-declarator before Insertar_Nodo
esperando init-declarator antes de Insertar_Nodo. Normalmente te va indicar la linea, pero por ejemplo si falta un punto y coma en una linea anterior el compilador te va dar el error en la siguiente linea, y te va decir que el error esta esperando uno u otro símbolo antes de X variable función o lo que tengas en la siguiente linea.

Por ejemplo el código siguiente:
Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main (){
  5.    cout << "Hola"   //<-¡¡¡falta un punto y coma aquí!!!
  6.  
  7.    cout << " mundo";
  8.    return 0;
  9. }

va decir que falta un punto y coma antes de cout. ¿Pero por que dice antes si es en la seguiente linea?? Bien, como sabemos para el compilador no le importa que pongas todo el programa en una sola linea, por que no existe salto de linea, eso lo hacemos por comodidad, para poder ver el código todo una instrucción abajo de otra, por qué para nosotros es más cómodo así, pero para el programa el que hagas saltos de linea no le importa un pimiento. Para el IDE el lo mismo...
cout << "Hola" cout << " mundo";

..que
cout << "Hola"
cout << " mundo";

pero el piensa que esta así cout << "Hola" cout << " mundo"; entonces por eso dice que falta punto y coma antes del segundo cout, pero si ese esta en la siguiente linea pues ya ves tu... XD. Por eso debemos poner punto y coma, para decir al compilador donde terminamos una introducción y donde comienza otra, ya que para el compilador es indiferente que este en la misma linea o en lineas separadas.

Si el error no esta en la misma linea probablemente este en la anterior. ;)

Suerte