Dev - C++ - Crear un archivo de cabecera y otro de implementacion

   
Vista:

Crear un archivo de cabecera y otro de implementacion

Publicado por Fran (1 intervención) el 10/08/2014 19:48:30
Hola, entiendo que cuando uno quiere tener en archivos separados, las funciones que se van a usar, lo correcto sería tener un archivo de cabecera, de extensión .h, solo con los prototipos de las funciones, y otro archivo de extension .c o .cpp que tiene el desarrollo de las mismas. Luego en el programa principal solo es necesario escribir #include "archivodecabecera.h" y las llamadas a las funciones deberían funcionar. Mi problema es al hacer todo esto, que evidentemente lo estoy haciendo mal.

Hice un programa muy simple para probarlo, el programa es:

1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h> 
#include "suma.h" 
 
int main (void){
   int x = 4, y = 5;
 
   printf ("La suma es: %d\n", suma (4, 5));
 
   getchar ();
   return 0;
}


El archivo de cabecera (que se llama "suma.h") tiene:

1
int suma (int a, int b);


Y el archivo donde están las funciones implementadas (que se llama "suma.cpp") es:

1
2
3
4
5
6
#include <stdio.h> 
#include "suma.h" 
 
int suma (int a, int b){
   return (a + b);
}



Ustedes se darán cuenta mejor que yo porque, pero cuando intento compilar esto con el devc++ no funciona, me da un error "undefined reference to `suma(int, int)'". Asumo que es porque el programa principal no reconoce en ningún momento al archivo donde están desarrolladas las funciones. Pero el tema es que en los ejemplo lo vi así :S

Leí que se puede compilar tecleando los nombres de los archivos en la línea de comandos, pero no entiendo qué es la línea de comandos ni donde está, en ningún lado lo vi enteramente explicado, yo hace poco empecé a leer algunos libros y tutoriales y en todos, lo que yo hacía para compilar es apretar el botón que dice "compilar" del compilador, en sí, no entiendo porque eso no funciona :S

Hay algunas preguntas extra que tengo, como por ejemplo, por qué no debería incluir el desarrollo de las funciones en el mismo archivo de cabecera, ya que eso sí me lo toma y se compila bien el programa. Lo intento hacer así porque leí que no es correcto que en el archivo de cabecera estén desarrolladas las funciones, y el desarrollo debe estar en un archivo aparte de la misma extensión que el programa común, y que ese archivo llame con #include al archivo de cabecera, pero no sé en realidad por qué...

Bueno, en fin, si alguien me puede ayudar, le estoy agradecido! :)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de vangodp

Crear un archivo de cabecera y otro de implementacion

Publicado por vangodp (287 intervenciones) el 10/08/2014 21:27:32
debes crear un proyecto y marcar que te compile los .C o .C++
si intentas hacer eso creando solo un fichero sin estar dentro de un proyecto no te va funcionar por que es el proyecto que se encarga de marcar los archivos que deben compilar.
Ademas Dev c++ no es el mas indicado para eso. Deberías pasarte a codeblocks que es el que tiene todo lo necesario para eso ;). Ese también fue el motivo por el cual lo deje. Por que es muy limitado a la hora de crear proyectos, y también como editor deja mucho que desear, el resaltado es muy malo.
Solía defender lo a capa y espada pero la verdad es que solo le veo uso como estudio, por que es a mi punto de vista muy rápido, lo abres como una bala, creas un archivo fuente y empiezas a codear. Pero cuando necesitas trabajar con proyectos (¡Y LO NECESITARAS!) se queda corto solo eso.
Pero ese problema que tienes se arregla con crear un proyecto y configurar lo de forma correcta para que encuentre las carpetas donde se encuentran los archivos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar