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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


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

Desconectado Desconectado

Mensajes: 19



Ver Perfil
[c++] Source de uso de punteros a funciones
« en: 5 Septiembre 2010, 11:17 am »

Hola a todos.
Me gustaria compartir el siguiente codigo con ustedes,lo hice con fines pedagogicos,para ver si entiendo mejor lo que es un puntero a funcion.
El codigo esta comentado ,cualquier duda que les pueda resolver o criticas son bienvenidas  :) :)
Espero les sea util.Saludos ;) ;)

Código
  1.  
  2. #include<stdio.h>
  3.  
  4.  
  5. /*Programa que utiliza punteros a funciones para realizar una operacion segun los valores introducidos*/
  6.  
  7.  
  8.  
  9. void operacion(int,int,int*,int(*func)(int,int));
  10. /*
  11. 1) primer valor(int)
  12. 2) segundo valor(int)
  13. 3) puntero a resultado(int*)
  14. 4) puntero a funcion que opera con (1) y (2) como argumentos pero devuelve el valor de la operacion
  15.                                                                   modificando el contenido de (3)
  16. */
  17.  
  18. int suma(int a,int b);//primer operacion: a+b
  19. int resta(int a,int b);//segunda operacion: a-b
  20.  
  21. int main(int argc,char*argv[])
  22. {
  23.  
  24. int*c=new int;//lugar donde se guardara el resultado
  25. int a,b;//variables que recibiran los datos con los cuales operar
  26. scanf("%d%d",&a,&b);//entrada de datos
  27. operacion(a,b,c,(a>b)?&suma:&resta);//evaluacion:si a> b  sumo a+b sino resto b-a
  28. printf("\n%d%c%d------------------>%d",a,(a>b)?'+':'-',b,*c);//evaluacion si a>b muestro una suma,sino muestro una resta
  29. fflush(stdin);//limpio el buffer de basura
  30. getc(stdin);//recibo algun caracter de la entrada standart(solo para que no se cierre la consola),aunque lo puedo cambiar por getchar()
  31.  
  32. delete c;//liberamos la memoria reservada    
  33.  
  34. return 0;
  35. }
  36.  
  37. //no necesita explicacion//////////////////////
  38. int suma(int a,int b)
  39. {
  40.  
  41. return (a+b);
  42. }
  43.  
  44. int resta(int a,int b)
  45. {
  46.  
  47. return (b-a);    
  48. }
  49. //////////////////////////////////////////
  50.  
  51.  
  52.  
  53. void operacion(int a,int b,int*c,int(*func)(int,int))
  54. {
  55.  
  56. *c=func(a,b);
  57.  
  58. };
  59.  
  60.  


En línea

Debci
Wiki

Desconectado Desconectado

Mensajes: 2.021


Actualizate o muere!


Ver Perfil WWW
Re: [c++] Source de uso de punteros a funciones
« Respuesta #1 en: 5 Septiembre 2010, 11:31 am »

Esta bien hecho, solo que estari mucho mejor y mas estandarizado si usases libs del C++ standard, stdio, me refiero a las funciones de entrada y salida cout y cin por ejemplo, que traen sus homólogos para limpiar buffer y esas operaciones necesarias.

Saludos


En línea

Horricreu
Wiki

Desconectado Desconectado

Mensajes: 290

¡La verdad os hará libres!


Ver Perfil WWW
Re: [c++] Source de uso de punteros a funciones
« Respuesta #2 en: 5 Septiembre 2010, 12:08 pm »

Esta bien hecho, solo que estari mucho mejor y mas estandarizado si usases libs del C++ standard, stdio, me refiero a las funciones de entrada y salida cout y cin por ejemplo, que traen sus homólogos para limpiar buffer y esas operaciones necesarias.

Saludos

Puede utilizar perfectamente las funciones de la librería stdio, solamente cambia su nombre a cstdio. En general, todas las librerías de C se pueden utilizar para C++ añadiendo la letra ce delante de sus nombres como en el ejemplo que he puesto.

Saludos :P
« Última modificación: 5 Septiembre 2010, 12:15 pm por Horricreu » En línea

Debci
Wiki

Desconectado Desconectado

Mensajes: 2.021


Actualizate o muere!


Ver Perfil WWW
Re: [c++] Source de uso de punteros a funciones
« Respuesta #3 en: 5 Septiembre 2010, 13:15 pm »

Esta bien hecho, solo que estari mucho mejor y mas estandarizado si usases libs del C++ standard, stdio, me refiero a las funciones de entrada y salida cout y cin por ejemplo, que traen sus homólogos para limpiar buffer y esas operaciones necesarias.

Saludos

Puede utilizar perfectamente las funciones de la librería stdio, solamente cambia su nombre a cstdio. En general, todas las librerías de C se pueden utilizar para C++ añadiendo la letra ce delante de sus nombres como en el ejemplo que he puesto.

Saludos :P
Pero en este caso no es cstdio.h no?

Saludos
En línea

cbug

Desconectado Desconectado

Mensajes: 147



Ver Perfil
Re: [c++] Source de uso de punteros a funciones
« Respuesta #4 en: 5 Septiembre 2010, 14:31 pm »

Cita a wikipedia:

Citar
Los archivos de Cabecera de la biblioteca estándar de C++ no terminan en ".h".

En línea

Horricreu
Wiki

Desconectado Desconectado

Mensajes: 290

¡La verdad os hará libres!


Ver Perfil WWW
Re: [c++] Source de uso de punteros a funciones
« Respuesta #5 en: 5 Septiembre 2010, 14:54 pm »

Esta bien hecho, solo que estari mucho mejor y mas estandarizado si usases libs del C++ standard, stdio, me refiero a las funciones de entrada y salida cout y cin por ejemplo, que traen sus homólogos para limpiar buffer y esas operaciones necesarias.

Saludos

Puede utilizar perfectamente las funciones de la librería stdio, solamente cambia su nombre a cstdio. En general, todas las librerías de C se pueden utilizar para C++ añadiendo la letra ce delante de sus nombres como en el ejemplo que he puesto.

Saludos :P
Pero en este caso no es cstdio.h no?

Saludos

Exacto, es lo que dijo cbug. Igualmente, si miras mis mensajes, cuando escribo una librería sea de C o no, nunca la escribo con .h. Lógicamente, si programo y alguna librería lo requiere, pongo el .h. Pero en mis mensajes nunca, es un vicio.

Saludos :P
En línea

[L]ord [R]NA


Desconectado Desconectado

Mensajes: 1.513

El Dictador y Verdugo de H-Sec


Ver Perfil WWW
Re: [c++] Source de uso de punteros a funciones
« Respuesta #6 en: 5 Septiembre 2010, 17:14 pm »

Nooooooooooooooooooooo... el titulo es que tiene un error, es extraño que alguien se equivoque escribiendo todo en C y luego diga que es C++.
En línea

Ari Slash


Desconectado Desconectado

Mensajes: 1.783



Ver Perfil WWW
Re: [c++] Source de uso de punteros a funciones
« Respuesta #7 en: 5 Septiembre 2010, 17:25 pm »

yo veo que tiene un new int
En línea

Horricreu
Wiki

Desconectado Desconectado

Mensajes: 290

¡La verdad os hará libres!


Ver Perfil WWW
Re: [c++] Source de uso de punteros a funciones
« Respuesta #8 en: 5 Septiembre 2010, 17:55 pm »

yo veo que tiene un new int

Y también tiene el operador delete ;D

Saludos :P
En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: [c++] Source de uso de punteros a funciones
« Respuesta #9 en: 5 Septiembre 2010, 19:35 pm »

La indentación pesima.
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Duda] Punteros a Funciones.
Programación C/C++
BlackZeroX 2 3,793 Último mensaje 14 Enero 2011, 07:44 am
por BlackZeroX
arreglo de punteros y funciones
Programación C/C++
m@o_614 9 3,987 Último mensaje 30 Agosto 2013, 17:38 pm
por rir3760
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines