he escrito el siguiente código:C++ - Preguntas sobre los punteros de función
#include "stdafx.h"
#include <iostream>
using namespace std;
double funcA()
{
return 100.0;
}
int g(double (*pf)())
{
cout << (*pf)() << endl;
return 0;
}
int g2(double pf())
{
cout << pf() << endl;
return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
g(&funcA); // case I
g(funcA); // case II
g2(funcA); // case III
g2(&funcA); // case IV
return 0;
}
he ejecutar el código anterior en VS2008 y cada llamada a la función devuelve '100'. Aquí está la pregunta:
Q1> ¿Hay algún problema en el código?
Q2> Parece que C++ no hace la diferencia entre * pf y pf. ¿Es eso correcto?
Gracias
+1 para una pregunta muy clara. –
también puede usar la declaración de g con el cuerpo de g2 – UncleZeiv
Sugiero este tutorial sobre punteros de función: http://www.newty.de/fpt/index.html .. es muy completo – Jack