En este caso, la inicialización es puntero, flotador (* myFnPtr) (float, int) = myFn; Ahora, el nombre de una función (por ejemplo myFn) es en realidad un puntero a una función. Así, functionPointer y actualFunctionName convierten en sinónimos. En nuestro caso, myFnPtr y myFn convierten en sinónimos. Función que llama en punta por Pointer Mientras functionPointer y actualFunctionName son sinónimos puede llamar a la función real utilizando functionPointer de la misma manera como lo haría con nosotros actualFunctionName.
En nuestra situación anterior, lo haría por ejemplo, myFnPtr (68,78, 50) Ejemplo El siguiente código muestra cómo se puede crear un puntero a una función y lo utilizan para llamar a la función: #include using namespace std; flotar myFn (ident1 float, int ident2) {diferencia float = ident1 - ident2; diferencia regresar; } Flotador (* myFnPtr) (float, int) = myFn; int main () {respuesta float = myFnPtr (6.
5, 2); cout return 0; } Puntero por la Declaración En los ejemplos anteriores el puntero ha sido creado como flotador (* myFnPtr) (float, int) = myFn; Esto está creando puntero por la inicialización. En la declaración de la dirección de la función señalada se almacena en el objeto de puntero (myFnPtr), durante la creación del puntero.
Puede crear el puntero por la declaración y luego asignar el valor de la dirección después de la siguiente manera: float (* myFnPtr) (float, int); myFnPtr = myFn; En este caso, ambas declaraciones o la instrucción de asignación deben estar en una función (como la función principal). Utilice de puntero a una función El principal uso de un puntero a una función es como un parámetro a otra función.
El siguiente código ilustra esto: #include using namespace std; flotar myFn (ident1 float, int ident2) {diferencia float = ident1 - ident2; diferencia regresar; } Flotar squareDifference (float (* myFnPtr) (float, int)) {float SQR = myFnPtr (6.5, 2) * myFnPtr (6.5, 2); volver sqr; } Int main () {respuesta float = squareDifference (myFn); cout return 0; } El secreto es que dividir la inicialización en