Compartilhar via


Endereço de funções sobrecarregadas

Usar um nome de função sem argumentos retornará 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 do Func estiver selecionada, e seu endereço é copiado para pFunc.

O compilador determina qual versão da função para selecionar, localizando uma função com uma lista de argumentos que corresponda exatamente ao que o do destino.Os argumentos nas declarações de função sobrecarregada são comparados com um destes procedimentos:

  • Um objeto que está sendo inicializado (conforme mostrado no exemplo anterior)

  • O lado esquerdo de uma instrução de atribuição

  • Argumento formal para uma função

  • Argumento formal para um operador definido pelo usuário

  • Um tipo de retorno da função

Se nenhuma correspondência exata for encontrada, a expressão que leva o endereço da função é ambígua e será gerado um erro.

Observe que embora uma função não-membro, Func, foi usado no exemplo anterior, as mesmas regras são aplicadas quando pegar o endereço de sobrecarregado funções de membro.

Consulte também

Referência

Sobrecarga