Это выглядит как std::cout
не может напечатать адрес функции-члена, например:Как напечатать член адрес функции в 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;
}
результат что-то вроде этого:
003111DB
1
Как я могу print MyFunc
Адрес: std::cout
?
Для некоторых интересных статистических данных о размерах и реализации указателей на член-функций в различных компиляторы, см. диаграмму внизу [этой статьи] (http://www.codeproject.com/Articles/7150/Member-Function-Pointers-and-the-Fastest-Possible). Однако, поскольку эта статья несколько датирована (написана в 2005 году), цифры скорее всего не точны, но они дают приблизительную идею. –