Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Synth3tik0 en 3 Agosto 2011, 23:31 pm



Título: [c++]Prototipo de una funcion.. donde debe ir? antes de main?
Publicado por: Synth3tik0 en 3 Agosto 2011, 23:31 pm
Por ejemplo en este ejercicio
Código:
#include <iostream>
using namespace std;

                      //si lo pongo por aki si funciona

int main()
{
int resultado  = 0;
int entrada;

cout << "Escriba un numero entre 0 y 100 para duplicarlo: ";
cin >> entrada;
cout << "\nAntes de llamar al Duplicador... ";
cout << "\nentrada: " << entrada << "\nduplicada: " << resultado << "\n";

resultado = Duplicador(entrada);

cout << "\nRegresando del Duplicador...\n";
cout << "\nentrada: " << entrada << "\nDuplicada: " << resultado << endl;

return 0;
}

int Duplicador(int); // si lo pongo aki no..

int Duplicador(int eloriginal)
{
if (eloriginal <= 100)
return eloriginal * 2;
else
return -1;
cout << "No se puede llegar asta ahi" << endl;
}

como comento en el codigo si lo pongo entre using namespace std y main compila bien, pero si lo pongo en otro lugar no.. q pasa llevan orden?


Título: Re: [c++]Prototipo de una funcion.. donde debe ir antes de main?
Publicado por: madpitbull_99 en 3 Agosto 2011, 23:36 pm
Es antes del main donde hay que poner los prototipos.

Al intentar compilarlo (sin el prototipo antes del main) seguramente te dirá que no encuentra la función.


Título: Re: [c++]Prototipo de una funcion.. donde debe ir? antes de main?
Publicado por: Synth3tik0 en 4 Agosto 2011, 00:10 am
Ok. bueno y hablando de prototipos tengo entendido q los puedo meter en un archivo(noce si necesite extensión .h) he  incluirlo con #include <>. Como necesita estar estructurado ese archivo? nomas es incluir los prototipos en forma lista y ya?


Título: Re: [c++]Prototipo de una funcion.. donde debe ir? antes de main?
Publicado por: El_Java en 4 Agosto 2011, 00:18 am
tienes que meterlo en un archivo .h con esta estructura

Código
  1. #ifndef NOMBRE_ARCHIVO
  2. #define NOMBRE_ARCHIVO
  3.  
  4. //Tus declaraciones
  5.  
  6. #endif
  7.  

Ahi solo debes poner declaraciones y prototipos, y luego en el archivo cpp debes poner #include"nombre_archivo.h" y no #include<nombre_archivo.h>

Un saludo.


Título: Re: [c++]Prototipo de una funcion.. donde debe ir? antes de main?
Publicado por: rir3760 en 4 Agosto 2011, 02:23 am
como comento en el codigo si lo pongo entre using namespace std y main compila bien, pero si lo pongo en otro lugar no.. q pasa llevan orden?
No.

Los prototipos de las funciones no deben necesariamente ir en una parte determinada del programa.

Lo que si se debe cumplir es: deben estar colocados antes del uso (llamada) de la funcion correspondiente. Eso se cumple colocandolos (lo usual) antes de toda definicion.

Por ejemplo:
Código
  1. #include <iostream>
  2. using std::cin;
  3. using std::cout;
  4. // etc
  5.  
  6. // Prototipos de funciones
  7.  
  8. // Definicion de funciones empezando por la principal
  9. int main()
  10. {
  11. // ...
  12.  
  13. return 0;
  14. }
  15.  
  16. // Mas definiciones ...

Un saludo