elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema compilando
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Problema compilando  (Leído 5,714 veces)
.:BlackCoder:.


Desconectado Desconectado

Mensajes: 388


Cada dia C++!!


Ver Perfil
Problema compilando
« en: 1 Mayo 2010, 00:52 am »

Wenas... Ando practicando como compilar separado, haciendo headers, you know, con clases derivadas y todo eso... Pero aun no he derivado nada y haciendo la base me da un error:
Persona.h expected `)' before "name"

Y mas abajo vi:
Persona.h `string' has not been declared

Y pes nu se el porq aca les dejo el code de la header:
Código
  1. #ifndef PERSONA_H
  2. #define PERSONA_H
  3. class Persona{
  4.    public:
  5.        Persona();
  6.        Persona(string name,string ape, int t, int ced);
  7.        virtual ~Persona();
  8.  
  9.        void g_nombre(string name);
  10.        void g_apellido(string ape);
  11.        void g_tlf(int t);
  12.        void g_ci(int ced);
  13.  
  14.        string dev_nombre();
  15.        string dev_apellido();
  16.        int dev_tlf();
  17.        int dev_ci();
  18.  
  19.    protected:
  20.        string nombre;
  21.        string apellido;
  22.        int tlf;
  23.        int ci;
  24. };
  25. #endif

Y aca el del source:
Código
  1. #include "Persona.h"
  2.  
  3. Persona::Persona(){}
  4. Persona::Persona(string name,string ape, int t, int ced):nombre(name),
  5.        apellido(ape),tlf(t),ci(ced){}
  6. Persona::~Persona(){}
  7.  
  8. void Persona::g_nombre (string name){nombre=name;}
  9. void Persona::g_apellido (string ape){apellido=ape;}
  10. void Persona::g_tlf (int t){tlf=t;}
  11. void Persona::g_ci(int ced){ci=ced;}
  12.  
  13. string Persona::dev_nombre()const{return nombre;}
  14. string Persona::dev_apellido()const{return apellido;}
  15. int Persona::dev_tlf()const{return tlf;}
  16. int Persona::dev_ci()const{return ci;}
  17.  
  18.  
  19.  

Y en el programa me sale en la tercera linea el error  :xD

Código
  1. #include <cstdlib>
  2. #include <iostream>
  3. #include "Persona.h" //Here
  4.  
  5. using namespace std;
Por favor alguien que me diga cual es el problema...


En línea

"No te esfuerzes por saber mas, esfuerzate por ser el mejor en lo que sabes... Y asi sabras mas" .:BlackCoder:. jajaja



Littlehorse
All the world's a stage
Moderador
***
Desconectado Desconectado

Mensajes: 2.714


Nie Dam Sie


Ver Perfil WWW
Re: Problema compilando
« Respuesta #1 en: 1 Mayo 2010, 01:11 am »

No lo puedo probar ahora pero ten en cuenta que string se encuentra en std y vos el using namespace std lo pones luego de incluir persona.h. Usa el using namespace std en el header o cada vez que declares un string hace std::string. Deberias incluir cstring tambien.

No se si habrá mas errores.

Saludos!


En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
.:BlackCoder:.


Desconectado Desconectado

Mensajes: 388


Cada dia C++!!


Ver Perfil
Re: Problema compilando
« Respuesta #2 en: 1 Mayo 2010, 01:23 am »

Mmmm... no me habia dado cuenta, pero el problema continua... Lo de que me falto un ) antes de "name" pero yo no veo que falte nada  :-\... y es la declaracion... o sea en el .cpp
En línea

"No te esfuerzes por saber mas, esfuerzate por ser el mejor en lo que sabes... Y asi sabras mas" .:BlackCoder:. jajaja



Littlehorse
All the world's a stage
Moderador
***
Desconectado Desconectado

Mensajes: 2.714


Nie Dam Sie


Ver Perfil WWW
Re: Problema compilando
« Respuesta #3 en: 1 Mayo 2010, 01:33 am »

No lo puedo probar ahora porque tengo el vs ocupado, mas tarde lo compilo y te digo.

Hiciste lo que te dije a ver si así se solucionaba?
En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
.:BlackCoder:.


Desconectado Desconectado

Mensajes: 388


Cada dia C++!!


Ver Perfil
Re: Problema compilando
« Respuesta #4 en: 1 Mayo 2010, 01:37 am »

ok... Gracias. Y sip, si le puse el using namespace std; en el header, y mostro el error ese del )... Y le puse un std:: a todas las declaracions de string y sigue con lo del )  :¬¬ :xD

En que momento el header o el programa como tal, llama al archivo .cpp 0o? Como funciona esa partecita....
En línea

"No te esfuerzes por saber mas, esfuerzate por ser el mejor en lo que sabes... Y asi sabras mas" .:BlackCoder:. jajaja



Littlehorse
All the world's a stage
Moderador
***
Desconectado Desconectado

Mensajes: 2.714


Nie Dam Sie


Ver Perfil WWW
Re: Problema compilando
« Respuesta #5 en: 1 Mayo 2010, 02:47 am »

Me parece que alguien no leyó lo que le pase  :rolleyes: ;D

A ver, cuando vos tenes múltiples archivos, se analizan por separado buscando errores de sintaxis, de tipos y demás (no voy a ahondar en tokens, traductores ni nada en especifico. Para mas del tema basta con buscar "translation phases").

Cuando todo esta bien por así decirlo, el linker se encarga de transformar todo en una unidad.

Ahora bien, main.cpp no tiene idea de las definiciones que existen en persona.cpp, y es ahí donde entra la funcionalidad del header al hacer de una especie de contenedor de forward declarations.

Ese persona.cpp lo tenes que incluir en el proyecto si es que creaste uno, porque si bien el compilador no se va a quejar porque puede usar los prototipos para el chequeo, fallaría el linker si utilizas alguno de los métodos al no encontrarse la definición.

En cuanto al código, así a simple vista hay definiciones que son distintas a los prototipos. Yo que vos lo reviso un poco mas.

Saludos!

En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
.:BlackCoder:.


Desconectado Desconectado

Mensajes: 388


Cada dia C++!!


Ver Perfil
Re: Problema compilando
« Respuesta #6 en: 1 Mayo 2010, 03:03 am »

 :laugh: Si lei lo q me pasaste pero no le pare mucho a esa parte... Perdon...
Y pes si te refieres a los const... ya los puse pero that &#@*|ª no compila!! Y lo he visto de arriba a abajo y nada...  :(

aca esta de nuevo el .h...
Código
  1. #ifndef PERSONA_H
  2. #define PERSONA_H
  3. using namespace std;
  4. class Persona{
  5.    public:
  6.        Persona();
  7.        Persona(string name,string ape, int t, int ced);
  8.        virtual ~Persona();
  9.  
  10.        void g_nombre(string name);
  11.        void g_apellido(string ape);
  12.        void g_tlf(int t);
  13.        void g_ci(int ced);
  14.  
  15.        string dev_nombre()const;
  16.        string dev_apellido()const;
  17.        int dev_tlf()const;
  18.        int dev_ci()const;
  19.  
  20.    protected:
  21.        string nombre;
  22.        string apellido;
  23.        int tlf;
  24.        int ci;
  25. };
  26. #endif

Y el .cpp
Código
  1. #include "Persona.h"
  2.  
  3. Persona::Persona(){}
  4. Persona::Persona(string name,string ape, int t, int ced) : nombre(name),
  5.        apellido(ape),tlf(t),ci(ced){}
  6. Persona::~Persona(){}
  7.  
  8. void Persona::g_nombre (string name){nombre=name;}
  9. void Persona::g_apellido (string ape){apellido=ape;}
  10. void Persona::g_tlf (int t){tlf=t;}
  11. void Persona::g_ci(int ced){ci=ced;}
  12.  
  13. string Persona::dev_nombre()const{return nombre;}
  14. string Persona::dev_apellido()const{return apellido;}
  15. int Persona::dev_tlf()const{return tlf;}
  16. int Persona::dev_ci()const{return ci;}
  17.  

Y eso que aun no he hecho los headers de las clases derivadas  :-\. Pero ya yo compile ese programa pero todo en uno solo y lo q estoy es separandolo... Por practica  :P
En línea

"No te esfuerzes por saber mas, esfuerzate por ser el mejor en lo que sabes... Y asi sabras mas" .:BlackCoder:. jajaja



.:BlackCoder:.


Desconectado Desconectado

Mensajes: 388


Cada dia C++!!


Ver Perfil
Re: Problema compilando
« Respuesta #7 en: 1 Mayo 2010, 05:18 am »

 :( Aun no hayo el problema... Lh aun no puedes probar mi code??  :xD
En línea

"No te esfuerzes por saber mas, esfuerzate por ser el mejor en lo que sabes... Y asi sabras mas" .:BlackCoder:. jajaja



Littlehorse
All the world's a stage
Moderador
***
Desconectado Desconectado

Mensajes: 2.714


Nie Dam Sie


Ver Perfil WWW
Re: Problema compilando
« Respuesta #8 en: 1 Mayo 2010, 06:16 am »

No no puedo ahora. Mañana lo pruebo.

Igualmente ya me imagino por donde van los tiros y cuando lo veas te vas a dar cuenta que es un error bastante tonto. Por esta vez voy a dejar que te sigas rompiendo un poco la cabeza ya que, creo yo, va a ser mejor.

Para que te vayas guiando:

persona.cpp esta en el proyecto?

cuantas veces incluís persona.h?  :rolleyes:


Que sea leve. Mañana me contas tus deducciones y si todavía no lo sacaste te digo  ;D


Saludos!
En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
.:BlackCoder:.


Desconectado Desconectado

Mensajes: 388


Cada dia C++!!


Ver Perfil
Re: Problema compilando
« Respuesta #9 en: 1 Mayo 2010, 06:38 am »

 :xD Weno voy a seguir viendo el code... Pero si claro que cree un proyecto... Y pes como q si inclui a cpp en le proyecto?? inclui fue la cabezera el linker no se necarga del .cpp pes :huh:
En línea

"No te esfuerzes por saber mas, esfuerzate por ser el mejor en lo que sabes... Y asi sabras mas" .:BlackCoder:. jajaja



Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Compilando?
Programación C/C++
Steven6 0 2,681 Último mensaje 25 Abril 2011, 04:35 am
por Steven6
Problema compilando cuando uso la librería portaudio.h
Programación C/C++
alfredus 2 2,390 Último mensaje 10 Abril 2015, 23:04 pm
por ivancea96
Duda compilando yuzu en linux
Juegos y Consolas
Bennu de Laconia 0 6,358 Último mensaje 21 Mayo 2020, 05:53 am
por Bennu de Laconia
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines