2012-04-02 43 views

Respuesta

8

No lo hará y, por lo tanto, este ejemplo no se compilará limpiamente, le dará un error de compilación.
Le dará un error de llamada de función ambigua.

Online Sample:

int foo(int x , int z = 0){return 0;} 
int foo(int x, int y , int z = 0){return 10;} 

int main() 
{ 
    foo(1 , 2); 
    return 0; 
} 

Salida:

prog.cpp: In function ‘int main()’:
prog.cpp:6: error: call of overloaded ‘foo(int, int)’ is ambiguous
prog.cpp:1: note: candidates are: int foo(int, int)
prog.cpp:2: note: int foo(int, int, int)

5

No es así, es por eso que obtiene un error de compilación.

2

compilador reportar sobrecarga de la función ambigua. Como no se puede determinar qué función se llamará, también lo hace el compilador

Cuestiones relacionadas