*   >> Leitura Educação Artigos >> science >> programação

Ponteiro para função em C ++

Aqui, Type é o tipo de retorno da função o ponteiro irá apontar para. functionPointer é o identificador do objecto que vai ter o endereço do código de arranque da função. ParameterTypes são os tipos de parâmetros da função apontada. Os parênteses e asterisco são obrigatórios. Suponha que você quer um ponteiro para a função myFn () acima com o nome, myFnPtr. Neste caso, a inicialização do ponteiro é, float (* myFnPtr) (float, int) = myFn; Agora, o nome de uma função (por exemplo myFn) é, na verdade, um ponteiro para uma função. Então, functionPointer e actualFunctionName tornou sinônimo.

No nosso caso, myFnPtr e myFn tornou sinônimo. Chamar função apontada pelo ponteiro Enquanto functionPointer e actualFunctionName são sinônimos que você pode chamar a função real usando functionPointer da mesma forma como faria nos actualFunctionName. Na nossa situação acima, você faria por exemplo, myFnPtr (68,78, 50) Exemplo O código a seguir mostra como você pode criar um ponteiro para uma função e usá-lo para chamar a função: #include using namespace std; flutuar myFn (float ident1, int ident2) {diferença flutuador = ident1 - ident2; retornar diferença; } Float (* myFnPtr) (float, int) = myFn; int main () {resposta = flutuador myFnPtr (6.

5, 2); cout retornar 0; } Pointer pela Declaração Nos exemplos acima o ponteiro foi criado como, float (* myFnPtr) (float, int) = myFn; Isto está criando ponteiro pela inicialização. Na indicação do endereço da função pontas é armazenado no objecto ponteiro (myFnPtr), durante a criação do ponteiro. Você pode criar o ponteiro pela declaração e, em seguida, atribuir o valor de endereço depois da seguinte forma: float (* myFnPtr) (float, int); myFnPtr = myFn; Neste caso, ambas as declarações ou a declaração de atribuição deve estar em uma função (como a função principal).

Use de ponteiro para uma função O principal uso de um ponteiro para uma função é como um parâmetro para outra função. O código a seguir ilustra isso: #include using namespace std; flutuar myFn (float ident1, int ident2) {diferença flutuador = ident1 - ident2; retornar diferença; } Flutuar squareDifference (flutuador (* myFnPtr) (float, int)) {float SQR = myFnPtr (6,5, 2) * myFnPtr (6,5, 2); retornar sqr; } Int main () {resposta = flutuador squareDifference (myFn); cout retornar 0; } O segredo é que você dividir a inicialização em sua esquerda e direita operando.

O operando da esquerda vai para os parênteses das outras funções (squareDifference) como parâmetro, enquanto o

Page   <<  [1] [2] [3] >>
Copyright © 2008 - 2016 Leitura Educação Artigos,https://artigos.nmjjxx.com All rights reserved.