Endereço de funções sobrecarregadas
O uso de um nome de função sem argumentos retorna o endereço dessa função. Por exemplo:
int Func( int i, int j );
int Func( long l );
...
int (*pFunc) ( int, int ) = Func;
No exemplo anterior, a primeira versão de Func é selecionada e seu endereço é copiado em pFunc.
O compilador determina qual versão da função será selecionada localizando uma função com uma lista de argumentos que corresponde exatamente ao destino. Os argumentos em declarações de função sobrecarregadas são correspondidos a um dos seguintes:
Um objeto que está sendo inicializado (conforme mostrado no exemplo anterior)
O lado esquerdo de uma instrução de atribuição
Um argumento formal a uma função
Um argumento formal a um operador definido pelo usuário
Um tipo de retorno de função
Se nenhum correspondência exata for encontrada, a expressão que usa o endereço da função é ambígua e um erro será gerado.
Observe que, embora uma função que não é membro, Func, tenha sido usada no exemplo anterior, as mesmas regras foram aplicadas ao colocar o endereço das funções de membro sobrecarregadas.