[c++]Prototipo de una funcion.. donde debe ir? antes de main?

Iniciado por Synth3tik0, 3 Agosto 2011, 23:31 PM

0 Miembros y 1 Visitante están viendo este tema.

Synth3tik0

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?
..........

madpitbull_99

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.



«Si quieres la paz prepárate para la guerra» Flavius Vegetius


[Taller]Instalación/Configuración y Teoría de Servicios en Red

Synth3tik0

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?
..........

El_Java

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.

rir3760

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
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language