我想在 C++ 中使用指向成员函数的指针,但它不起作用:
指针声明:
int (MY_NAMESPACE::Number::*parse_function)(string, int);
指针赋值:
parse_function = &MY_NAMESPACE::Number::parse_number;
此调用完美运行(itd 是映射元素的迭代器):
printf("%s\t%p\n",itd->first.c_str(),itd->second.parse_function);
但这一个不起作用:
int ret = (itd->second.*parse_function)(str, pts);
$ error: 'parse_function' was not declared in this scope
而这个既不是
int ret = (itd->second.*(MY_NAMESPACE::Number::parse_function))(str, pts);
$ [location of declaration]: error: invalid use of non-static data member 'MY_NAMESPACE::Number::parse_function'
$ [location of the call]: error: from this location
我不明白为什么...
提前谢谢!!