Parece que std::cout
no puede imprimir la dirección de la función miembro, por ejemplo:Cómo imprimir dirección de función miembro de C++
#include <iostream>
using std::cout;
using std::endl;
class TestClass
{
void MyFunc(void);
public:
void PrintMyFuncAddress(void);
};
void TestClass::MyFunc(void)
{
return;
}
void TestClass::PrintMyFuncAddress(void)
{
printf("%p\n", &TestClass::MyFunc);
cout << &TestClass::MyFunc << endl;
}
int main(void)
{
TestClass a;
a.PrintMyFuncAddress();
return EXIT_SUCCESS;
}
el resultado es algo como esto:
003111DB
1
¿Cómo puedo imprimir la dirección MyFunc
usando std::cout
?
Para algunas estadísticas interesantes sobre los tamaños y las implementaciones de punteros a miembro-funciones en diversos compiladores, vea la tabla al final de [este artículo] (http://www.codeproject.com/Articles/7150/Member-Function-Pointers-and-the-Fastest-Possible). Sin embargo, dado que ese artículo es algo anticuado (escrito en 2005), es probable que las cifras ya no sean precisas, pero dan una idea aproximada. –