这似乎不一致。为什么我们使用 &Example::func 而不是 Example::func?Example::func 或 &exampleFunction 有没有用处?似乎我们不能引用一个函数,以便排除 Example::func。而且我想不出一种使用 &exampleFunction 的方法,因为 exampleFunction 已经返回了一个指针。
#include <iostream>
class Example {
public:
void func() { std::cout <<"print me\n"; }
};
void exampleFunction() { std::cout << "print me too\n"; }
typedef void (Example::*ExampleFunc_t)();
typedef void (*ExampleFunction_t)();
int main()
{
Example e;
ExampleFunc_t f = &Example::func;
ExampleFunction_t f2 = exampleFunction;
(e.*f)();
f2();
return 0;
}