Compartilhar via


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.

Consulte também

Referência

Sobrecarga