<html>
<head>
<style>
P
{
margin:0px;
padding:0px
}
body
{
FONT-SIZE: 10pt;
FONT-FAMILY:Tahoma
}
</style>
</head>
<body>buenas<BR>
pues no estoy muy seguro, pero creo que es debido al uso de valores por defecto, esto es porque al usar valor por defecto tendríamos:<BR>mayor(5,7)<BR>
sería igual a<BR>
mayor(5,7,0/*valor por defecto*/)<BR>
aunque no sea igual necesariamente en términos estrictos de lógica, el compilador lo relacionaría como si fuera igual, ya que tomaría un valor por defecto y los otros serían los que se le ingresan a la función, es por eso que lo toma como ambiguo, ya que no sabe a cuál de las tres funciones se está llamando<BR>
 <BR>
no sé si me di a entender, pero no soy muy bueno explicándome, espero que en alguito pueda ayudar lo que he intentado redactar<BR>
 <BR>
en caso de que no entiendas muy bien espero no confundirte mas :p<BR><BR><SPAN style="FONT-FAMILY: Lucida Handwriting,Cursiva"><BR><BR></SPAN><BR><BR><BR>

<HR id=stopSpelling>
<BR>
> To: cconclase@listas.conclase.net<BR>> From: alepelexo@yahoo.es<BR>> Date: Tue, 13 Mar 2007 09:02:59 -0600<BR>> Subject: Re: [C con Clase] Sobrecarga<BR>> <BR>> OK, os muestro el código:<BR>> <BR>> #include <iostream><BR>> using namespace std;<BR>> int mayor(int a = 0, int b = 0);<BR>> int mayor(int a = 0, int b = 0, int c = 0);<BR>> int mayor(int a = 0, int b = 0, int c = 0, int d = 0);<BR>> int main() {<BR>> cout << mayor(10, 4) << endl;<BR>> cout << mayor(15, 35, 23) << endl;<BR>> cout << mayor(10, 12, 12, 18) << endl;<BR>> cin.get();<BR>> return 0;<BR>> }<BR>> int mayor(int a, int b) {<BR>> if(a > b) return a; else return b;<BR>> }<BR>> int mayor(int a, int b, int c) {<BR>> return mayor(mayor(a, b), c);<BR>> }<BR>> int mayor(int a, int b, int c, int d) {<BR>> return mayor(mayor(a, b), mayor(c, d));<BR>> }<BR>> <BR>> <BR>> Simplemente si os fijáis, es el ejemplo del curso sólo que con parámetros por defecto a 0.<BR>> <BR>> El error es algo así:<BR>> <BR>> In function `int main()':<BR>> call of overloaded `mayor(int, int)' is ambiguous <BR>> candidates are: int mayor(int, int) <BR>> int mayor(int, int, int) <BR>> int mayor(int, int, int, int) <BR>> <BR>> Y esto se me repite continuamente cada vez que aparece de alguna forma en el código la función. El enunciado del problema creo que lo estoy interpretando bien, ¿no? Ya que si pongo los valores a cero, el número que se retorne siempre va a ser el mayor.<BR>> <BR>> Muchas gracias y un saludo, Alejandro.<BR>> <BR>> El pasado 2007-03-13 12:25:52, Rey escribió:<BR>> <BR>> R> Hola, pero puedes enviarnos la construcción de la función que estás haciendo.<BR>> R> Rey.<BR>> _______________________________________________<BR>> Lista de correo Cconclase Cconclase@listas.conclase.net<BR>> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net<BR>> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ<BR><BR><br /><hr />Descubre Live.com - tu propia página de inicio, personalizada para ver rápidamente todo lo que te interesa en un mismo sitio. <a href='http://www.live.com/getstarted' target='_new'>todo en el mismo sitio.</a></body>
</html>