• Lunes 16 de Diciembre de 2024, 02:31

Autor Tema:  No Pude Compilar Esto!!  (Leído 1554 veces)

maikmr

  • Miembro MUY activo
  • ***
  • Mensajes: 112
    • Ver Perfil
No Pude Compilar Esto!!
« en: Jueves 10 de Marzo de 2005, 23:50 »
0
Código: Text
  1.  
  2.  
  3. #include <iostream>
  4. using namespace std;//<--------No eh podido entender para que sirve esto del namespace
  5. class string
  6. {      
  7.   char String [20];
  8.   //friend class grafo;
  9. };
  10. class arco;
  11. class vertice                  //Clase que define la estructura de los vertices.
  12. {
  13.   /*vertice(string name = "", vertice *sig = NULL, arco next = NULL)
  14.   {
  15.     sigv = sig;
  16.     sigarco = next;
  17.     nombre = name;
  18.     ubicacion = "";
  19.   }*/ //TENGO PROBLEMAS AQUI CON LOS CONSTRUCTORES DE LAS CLASES,¿QUE ESTOY HACIENDO MAL?
  20.   // Y POR ESO TENGO A TODOS MIS CONSTRUCTORES DE CLASES COMENTADOS.
  21.    //private:
  22.     int llave;
  23.     vertice *sigv;
  24.     arco *sigarco;
  25.     string nombre;   //  AQUI Y
  26.     string ubicacion;  //AQUI ESTAN DOS ERRORES QUE NO COMPRENDO.
  27.    
  28.   friend class grafo;
  29. };
  30. typedef vertice *pvertice;
  31. class arco            //Clase que define la estructura del arco o arista.
  32. {  
  33.   /*arco(int p, int b, int d, arco siga = NULL)
  34.   { //ESTE SEGMENTO ESTA COMENTADO PORQUE ALGO ESTOY HACIENDO MAL AQUI, NO ME SIRVE
  35.     peso = p;
  36.     sigArco = siga;
  37.     backbond = b;
  38.     distancia = d;
  39.   }*/
  40.   //private:
  41.     int peso;
  42.     arco *sigArco;
  43.     int backbond;
  44.     int distancia;
  45.  
  46.   friend class grafo;
  47. };
  48. typedef arco *p_arco;
  49. class grafo
  50. {
  51.   /*grafo()
  52.   {
  53.     privertice = vertice_act = NULL;
  54.     priarco = arco_act = NULL;
  55.   }*/
  56.   //~grafo(); //NO COMPRENDO BIEN LA FUNCION DE UN DESTRUCTOR DE LA CLASE
  57.   public:
  58.     void menu_principal();
  59.     void nuevo_vertice();
  60.     void nuevo_Arco();
  61.     void modif_Arco();
  62.     void modif_vertice();
  63.     void arbol_de_expancion_minima();
  64.     void Imprimir_grafo_en_amplitud();
  65.     void Imprimir_grafo_en_profundidad();
  66.     void grados_de_cada_vertice
  67.     void grado_Interno();                
  68.     void grado_Externo();
  69.     void rutas_alternativas();
  70.     void rutas_mas_directas();
  71.     void Backbone();
  72.     void vertices_conexos();
  73.   private:
  74.     pvertice privertice;
  75.     pvertice vertice_act;
  76.     p_arco priarco;
  77.     p_arco arco_act;
  78. };
  79.  
  80.  

En el codigo que aqui puse aparecen algunos comentario donde indico el compilador que habian errores, pero uno de los que mas me confunde es el de la linea 24 y 25 el compilador me dice que "string esta siendo usado como un tipo de dato pero que aun no lo e definido como tal."

Les agradeseré si le echan un vistaso a mi codigo y me pudieran indicar en donde estan mis errores, pues soy nuevo en C++, y llevo dos dias leyendo para ver si puedo encontar mi error, pero no doy con el.
Gracias de antemano.

carlos20

  • Miembro activo
  • **
  • Mensajes: 34
    • Ver Perfil
Re: No Pude Compilar Esto!!
« Respuesta #1 en: Viernes 11 de Marzo de 2005, 05:00 »
0
1- en el namespace std ya existe una clase string no tienes
   que crear una .

2- en el constructor de vertice next debe ser un
   puntero para que puedas asignarle NULL ( arco* next = NULL )

3- en el constructor de arco siga debe ser un puntero
   para que puedas asignarle NULL ( arco* siga = NULL )

4- en la linea donde esta la funcion "void grados_de_cada_vertice"
   debes colocar void grados_de_cada_vertice();

Código: Text
  1.  
  2. #include <iostream>
  3. using namespace std;
  4.  
  5. class arco;
  6. class vertice              
  7. {
  8.  vertice(string name = "", vertice *sig = NULL, arco *next = NULL)
  9.  {
  10.    sigv = sig;
  11.    sigarco = next;
  12.    nombre = name;
  13.    ubicacion = "";
  14.  }
  15.    int llave;
  16.    vertice *sigv;
  17.    arco *sigarco;
  18.    string nombre;  
  19.    string ubicacion;
  20.    
  21.  friend class grafo;
  22. };
  23. typedef vertice *pvertice;
  24. class arco          
  25. {  
  26.  arco(int p, int b, int d, arco* siga = NULL)
  27.  { peso = p;
  28.    sigArco = siga;
  29.    backbond = b;
  30.    distancia = d;
  31.  }
  32.  int peso;
  33.  arco *sigArco;
  34.  int backbond;
  35.  int distancia;
  36.  
  37.  friend class grafo;
  38. };
  39. typedef arco *p_arco;
  40. class grafo
  41. {
  42.  grafo()
  43.  {
  44.    privertice = vertice_act = NULL;
  45.    priarco = arco_act = NULL;
  46.  }
  47.  public:
  48.    void menu_principal();
  49.    void nuevo_vertice();
  50.    void nuevo_Arco();
  51.    void modif_Arco();
  52.    void modif_vertice();
  53.    void arbol_de_expancion_minima();
  54.    void Imprimir_grafo_en_amplitud();
  55.    void Imprimir_grafo_en_profundidad();
  56.    void grados_de_cada_vertice();
  57.    void grado_Interno();                
  58.    void grado_Externo();
  59.    void rutas_alternativas();
  60.    void rutas_mas_directas();
  61.    void Backbone();
  62.    void vertices_conexos();
  63.  private:
  64.    pvertice privertice;
  65.    pvertice vertice_act;
  66.    p_arco priarco;
  67.    p_arco arco_act;
  68. };
  69.  
  70.  

maikmr

  • Miembro MUY activo
  • ***
  • Mensajes: 112
    • Ver Perfil
Re: No Pude Compilar Esto!!
« Respuesta #2 en: Sábado 12 de Marzo de 2005, 18:07 »
0
Carlos muchas gracias por tomarce la molestia de analizar el codigo que ahi puse, se lo agradesco enormemente, aun no e probado el codigo con las mejoras que ud le hiso, pero estoy seguro de que si van a funcionar.

De nuevo gracias!!.