帮助我理解下面的代码片段:
(foo)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中的类型定义在这里声明了什么?我可以看到它是某种函数指针但是星号的意义是什么?它似乎是取消引用类型(?? ?),并以某种方式试图"附加"新类型定义的指针到MyType的类型(?!?)。
谁能给我点灯一下吗?Svoid (MyType::*)(SomeOtherType* t)
是指向MyType
类成员函数的指针,该函数接受一个参数(指向SomeOtherType
的指针),不返回任何值。
FAQ life条目
指向MyType
成员函数的指针,返回void
,并以指向SomeOtherType
的指针作为参数