帮助我理解以下代码片段:
(foo.h)
class Foo
{
public:
typedef void (MyType::*Handler)(SomeOtherType* t);
Foo(Handler handler) : handler_(handler) { }
private:
Handler handler_;
};
(mytype.h)
class MyType
{
public:
MyType() { }
void fun1() { }
void fun2() { }
};
foo.h 中的 typedef 到底在这里声明了什么?我可以看到它是某种函数指针,但星号的意义是什么?它似乎是在取消引用一个类型 (??) 并以某种方式试图将新的 typedef 指针“附加”到 MyType 的类型 (?!?)。
有人可以在这里阐明一下吗?真的很困惑:S