[C con Clase] Varios ficheros en un proyecto

Juan Antonio jalr43 en hotmail.com
Lun Abr 16 17:28:05 CEST 2007


Hola Alejandro,

sí, estás en lo cierto, un mensaje anterior que te respondió Steven lo 
confirma, pruébalo a ver si también te funciona así.

http://listas.conclase.net/?gid=2&mnu=mensajes&ord=fecha&msg=30396

Sabiendo ya que el problema es intentar hacer el include más de una vez de 
un mismo archivo, intenta repasar el código y corregirlo sin usar directivas 
del preprocesador.

Un saludo,
Juan Antonio.

----- Original Message ----- 
From: "Alejandro" <alepelexo en yahoo.es>
To: <cconclase en listas.conclase.net>
Sent: Monday, April 16, 2007 4:01 PM
Subject: Re: [C con Clase] Varios ficheros en un proyecto


Hola.

Muchas gracias a todos aquellos que habéis contestado y a ti en especial, 
Juan Antonio. Esto que me has explicado me ha funcionado a la perfección, 
pero en el capítulo del preprocesador había una directiva que era #pragma. 
Si no recuerdo mal, se podía usar #pragma once, que lo que hacía era algo 
similar a lo que hace el #ifndef __FUNCIONES_H__ y demás. ¿Estoy en lo 
cierto?

MUCHAS GRACIAS y un saludo, Alejandro.

El pasado 2007-04-13 21:18:40, Juan Antonio escribió:

JA> Hola Alejando,
JA> de nada. Otra buena práctica en los .h es la siguiente:
JA> Si el fichero se llama por ejemplo Funciones.h, al principio del fichero
JA> teclear:
JA> #ifndef __FUNCIONES_H__
JA>   #define __FUNCIONES_H__
JA> Y al final del mismo:
JA> #endif
JA> Con eso se evita que se incluyan más de una vez el mismo archivo. 
Pruébalo.
JA> Si no funciona mándame los ficheros y le echo un ojo sobre el Dev-C++.
JA> Un saludo,
JA> Juan Antonio.
JA> ----- Original Message ----- 
JA> From: "Alejandro" <alepelexo en yahoo.es>
JA> To: <cconclase en listas.conclase.net>
JA> Sent: Friday, April 13, 2007 9:01 PM
JA> Subject: Re: [C con Clase] Varios ficheros en un proyecto
JA> Muchas gracias por vuestra ayuda, sobre todo a ti, Juan ANtonio. He 
aplicado
JA> lo que me dices pero me sigue dando unn problema. Iré explicando mis
JA> ficheros para ver si os es más fácil así solucionar el problema:
JA> 1. "Principal.cpp" Aquí tengo la función main(). Al final llamo a otra
JA> función definida en el fichero "Funciones.cpp". En el fichero 
"Funciones.h"
JA> se incluyen los prototipos de esa función y otras, por lo que en los
JA> "#include" también incluyo "Funciones.h" además de "iostram" y otros 
como
JA> "cstring".
JA> 2. "Funciones.h" Aquí tengo los prototipos de funciones. Algunas de 
estas
JA> funciones trabajan con objetos de la clase "Personaje" por lo que en 
este
JA> fichero incluyo la línea "#include "Clases.h"
JA> 3. "Funciones.cpp" Aquí se encuentran las definiciones de los prototipos
JA> anteriormente puestos en "Funciones.h". Por supuesto, incluyo este 
fichero
JA> de cabecera
JA> 4. "Clases.h" Aquí se encuentra la clase en sí, con sus miembros y 
datos. Lo
JA> que no incluyo son las definifones de las funciones de esa clase.
JA> 5. "Clases.cpp" Y por último aquí tengo las definiciones de las 
funciones
JA> miembro de la clase "Personaje". Por supuesto, incluyo el fichero,
JA> "Clases,h".
JA> Muy bien, ahora va el problema en sí. En la fase del "linking", el 
Dev-C++
JA> me da un error. Pone una cosa del estilo de :
JA> "multiple definition of 'void Personaje::LeeDatos()
JA> first defined here
JA> "multiple definition of 'void Personaje::MuestraNombre()
JA> first defined here
JA> ....
JA> Y así con todas las funciones miembro de la clase. ¿Cuál es el problema?
JA> Siento haber sido tan pesado y un saludo, Alejandro
JA> _______________________________________________
JA> Lista de correo Cconclase Cconclase en listas.conclase.net
JA> 
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
JA> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
JA> _______________________________________________
JA> Lista de correo Cconclase Cconclase en listas.conclase.net
JA> 
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
JA> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
_______________________________________________
Lista de correo Cconclase Cconclase en listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ





Más información sobre la lista de distribución Cconclase