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

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


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


Desconectado Desconectado

Mensajes: 400



Ver Perfil
duda sobre funciones
« en: 18 Abril 2015, 04:49 am »

Hola, tengo una función en un fichero diferente al main.cpp, y quiero que esa función pueda ser llamada desde el fichero main, cómo le hago? :-\

Me pueden dar unos ejemplos? , gracias de antemano.


En línea

Código
  1. int getRandomNumber(){
  2.    return 4; //chosen by fair dice roll
  3.              //guaranteed to be random
  4. }
Gh057


Desconectado Desconectado

Mensajes: 1.190



Ver Perfil
Re: duda sobre funciones
« Respuesta #1 en: 18 Abril 2015, 06:06 am »

Hola, simplemente debes indicar mediante comillas en una sentencia include, el arhivo de cabecera de funciones externas que quieras agregar:

por ejemplo en tu main.cpp
Código
  1. #include "cifrados.h"
  2.  
  3. int main()
  4. {
  5.   ....
  6.   caesar(x);
  7.   ....
  8. return 0;
  9. }

en tu biblioteca tendrìas las declaraciones de dichas funciones, un arhivo metodos_cifrado.h con algo como
Código
  1. #ifndef CIFRADOS_H
  2. #define CIFRADOS_H
  3.       .....
  4.        void caesar(*char);
  5.        void vigenere (*char);
  6.        .....
  7. #endif
  8.  

mientras que tus declaraciones las haces en metodos_cifrados.cpp

Código
  1. #include "cifrados.h"
  2.  
  3. void caesar(*char)
  4. {
  5.   ......
  6. }
  7. void vigenere(*char)
  8. {
  9.   ......
  10. }
  11.  
etc...
a grosso modo... Serìa el diseño de lo que se denomina una biblioteca estàtica.
Puedes ubicarla en una carpeta para que quede màs organizado... recuerda entonces poner correctamente el path en el include.

Creas la biblioteca en sí del siguiente modo..
Citar
gcc -static -c cifrados.cpp -o cifrados.o
ar -rcs libcifrados.a cifrados.o
(de esta manera puede accederse luego como si fuera una del sistema)

La enlazas luego por ejemplo con
Citar
g++ -L. -Icifrado.h main.cpp -o cifrando_texto

Bueno todo esto puede automatizarse con makefile, o bien hacerlo desde una IDE... pero bàsicamente esta es la idea. Saludos

(edito) modifiqué los nombres para evitar confusión en la biblioteca, así como agregué la parte de la creación de la biblioteca estática propiamente dicha, antes del enlace.


« Última modificación: 18 Abril 2015, 07:01 am por Gh057 » En línea

4 d0nd3 1r4 3l gh057? l4 r3d 3s 74n v4s74 3 1nf1n1t4...
0xFer


Desconectado Desconectado

Mensajes: 400



Ver Perfil
Re: duda sobre funciones
« Respuesta #2 en: 19 Abril 2015, 02:16 am »

Hola, me funciona todo bien así como dices, pero cuando quiero hacer lo mismo con una función de tipo inline me lanza el error: undefined reference to `funcion(short*, short*, short)'|
En línea

Código
  1. int getRandomNumber(){
  2.    return 4; //chosen by fair dice roll
  3.              //guaranteed to be random
  4. }
Gh057


Desconectado Desconectado

Mensajes: 1.190



Ver Perfil
Re: duda sobre funciones
« Respuesta #3 en: 20 Abril 2015, 11:43 am »

Hola, debes tener todas las funciones externas declaradas correctamente en la cabecera .h, sino no podrás enlazarlas luego.
 
En línea

4 d0nd3 1r4 3l gh057? l4 r3d 3s 74n v4s74 3 1nf1n1t4...
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
duda sobre estructuras y funciones
Programación C/C++
asdavid 3 2,584 Último mensaje 29 Noviembre 2012, 00:01 am
por durasno
Duda sobre ficheros en funciones
Programación C/C++
muymuyperdido 4 2,643 Último mensaje 23 Diciembre 2012, 15:43 pm
por muymuyperdido
Duda sobre algunas funciones de C++
Programación C/C++
vojok 4 2,479 Último mensaje 2 Enero 2016, 17:54 pm
por vojok
Duda sobre operadores y funciones « 1 2 »
Programación C/C++
Luxus01 19 6,863 Último mensaje 12 Septiembre 2016, 15:31 pm
por ivancea96
Duda sobre funciones en C/C++
Programación C/C++
str0nghack 3 1,692 Último mensaje 22 Enero 2018, 20:03 pm
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines