C/Visual C - implicit declaration of function

 
Vista:

implicit declaration of function

Publicado por Franco (36 intervenciones) el 13/07/2005 08:46:59
Hola,

Este es mi primera nota en el foro. El problema que tengo es el siguiente. Estuve revisando un manual sobre c++ y en un ejemplo sobre funciones con objetos. Es un ejemplo sencillo en el que la función no hace más que miltiplicar a una variable del tipo entero por sí misma, obteniendo el cuadrado de la variable original.

El mensaje que aparece es el siguiente

19 f:\files\pucp\faci\2005-2\lp1\pre\curso2~1\funcion.cpp
implicit declaration of function `int srq(...)'

Pensé que podría ser un problema de sintaxis. Ya que es el segundo día que uso eñ dev c++.

Saludos.

Franco Eduardo Cedillo Crisosto

Ing. Informática - FACI PUCP 20030296
TIM PERU 97688520
[email protected] [email protected]
[email protected] [email protected]
cq#: 262-137-394 aol/aim: pucpboy
Website: http://www.geocities.com/fandelzip (No actualizado)
B-Log: http://www.bloglines.com/blog/pucpman (Actualizado)
MSN-Space http://spaces.msn.com/members/francocedillo (Más actualizado)
Hi5: http://www.hi5.com/i?l=MELI31E
Hyves: http://www.hyves.net/frm.php/232057/rF9G

= = =

#include <iostream.h>
#include <stdio.h>
#include <conio.h>
class objetos
{
int i;
public:
objetos(int n){i=n;}
int devol(){return i;};
};
int sqr(objetos o)
{
return o.devol()*o.devol();
};
void main()
{
objetos a(10), b(2);
cout<<srq(a);
cout<<sqr(b);
getch();
};

Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:implicit declaration of function

Publicado por fernando.gomez (1603 intervenciones) el 13/07/2005 18:37:37
Hola. Antes que nada, main no debe regresar void, sino int, y sólo debe regresar EXIT_SUCCESS o EXIT_FAILURE.

En fin, el problema está en el main. Tienes un error de dedo:

cout<<srq(a);
cout<<sqr(b);

Escribiste srq en lugar de sqr, y eso ocasiona que durante la compilación, el compilador crea que en realidad existe la función srq. A la hora de vincular y enlazar el código se topa con que no encuentra la función y de ahí el error que sale.

Por cierto, te sugiero que cambies sqr al siguiente código:

int sqr(objetos& o)
{
return o.devol()*o.devol();
};

Es decir, en lugar de que el parámetro sea objetos, que sea objetos& para que pases una referencia. Si no, se crea una copia del parámetro, gastando innecesariamente memoria.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:implicit declaration of function

Publicado por Franco (36 intervenciones) el 14/07/2005 01:34:34
Muchas gracias :D
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar