这种用法很少见,但确实存在,而且很不好理解,用法如下:
-
-
-
class foo
-
{
-
public:
-
int g (int x, int y) { return x + y ; }
-
} ;
-
-
typedef int (foo::*memberf_pointer)(int, int);
-
-
int main()
-
{
-
foo f ;
-
memberf_pointer mp = &foo::g ;
-
std::cout << (f.*mp) (5, 8) << std::endl ;
-
}
上面这个memberf_pointer是一个指向函数的指针,而且这个指针指向的函数必须是类foo的成员函数,特别要注意的是这个memberf_pointer类型是怎么赋值的,又是怎么调用的。
转载于:https://my.oschina.net/moluyingxing/blog/871878