Test Foro de elhacker.net SMF 2.1

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
#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 (cpp) [Seleccionar]

#ifndef NOMBRE_ARCHIVO
#define NOMBRE_ARCHIVO

//Tus declaraciones

#endif


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
Cita de: Synth3tik0 en  3 Agosto 2011, 23:31 PMcomo 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 (cpp) [Seleccionar]
#include <iostream>
using std::cin;
using std::cout;
// etc

// Prototipos de funciones

// Definicion de funciones empezando por la principal
int main()
{
// ...

return 0;
}

// Mas definiciones ...


Un saludo