Sembra std::cout
Non è possibile stampare l'indirizzo di funzione membro, ad esempio:Come stampare l'indirizzo funzione membro in 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;
}
il risultato è qualcosa di simile:
003111DB
1
Come posso stampare l'indirizzo di MyFunc
usando std::cout
?
Per alcune interessanti statistiche sulle dimensioni e le implementazioni di puntatori-a-membri funzioni in vari compilatori, vedere la tabella nella parte inferiore di [questo articolo] (http://www.codeproject.com/Articles/7150/Member-Function-Pointers-and-the-Fastest-Possible). Tuttavia, poiché tale articolo è un po 'datato (scritto nel 2005), i numeri probabilmente non sono più accurati, ma danno un'idea approssimativa. –