[C con Clase] separar interfaz de clase de la puesta en practica

Programante programante en gmail.com
Mar Mayo 20 23:56:36 CEST 2008


Leonel Florín Sellés escribió:
> mira el ide que utilizo es el kdevelop, pero con esta ya resulvi el
> probla como les dije.
> la cosa es que antes, programaba en consola, y creaba el archivo de
> cabecera clase.h, con la definición de la clase y con todo lo que
> lleva, para evitar la referencia ciclica, o algo asó, despues el el
> archivo fuente, clase.cpp, incluida el archivo cabecera, con
> #include "clase.h" y compilaba el archivo clase.cpp y todo binchaba
> bien, pero cuando creaba otro programa para probar la clase, en
> ejemplo.cpp, a este le incluia a clase.h, con #include "clase.h", y
> comenzaba el trabajo, pero a la hora de compilar el archivo ejemplo
> me daba error, diciendo que las funciones de la clase no estaban
> definidas, ese es el verdadero error, por lo que me llevo a pensar
> que no habia enlasado el firchero *.h con el *.cpp, para que el
> fichero de cabecera fuera a buscar las definiciones a el archivo
> fuente *.cpp.
>
> que crees.
>   
Los .h no se enlazan con .cpp Esa es una convención de "los humanos". 
Tienes que
pasarle al compilador todos los archivos a usar.

Para compilar esos dos archivos y enlazarlos entre sí usarías:
g++ clase.cpp ejemplo.cpp -o programa

O si prefieres compilar por separado (para reducir el tiempo que tarda 
cuando cambias uno):
g++ -c clase.cpp -o clase.o
g++ -c ejemplo.cpp -o ejemplo.o
g++ clase.o ejemplo.o -o programa

(los dos primeros compilan a código objeto y el último enlaza)

Si en vez de ser código C++ fuera C, bastaría con cambiar g++ por gcc.

Espero que esto te ayude tanto a ti Leonel como a David Reza

Respecto a lo que necesitas, es el compilador (que ya tienes si usas un 
IDE). Si en vez de usar gcc
usaras otro, la sintaxis podría cambiar, por ejemplo para el de visual 
studio:
cl clase.cpp ejemplo.cpp /o programa.exe





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