【发布时间】:2012-07-05 09:01:01
【问题描述】:
这里很好地描述了如何通过指针调用成员函数: http://www.newty.de/fpt/functor.html
但函子需要获得 2 个参数:指向对象的指针和指向成员函数的指针:
TSpecificFunctor(TClass* _pt2Object, void(TClass::*_fpt)(const char*))
{ pt2Object = _pt2Object; fpt=_fpt; }
呼叫:
(*pt2Object.*fpt)(string);
是否可以像 C 风格一样传递单个参数:
func() -- call
func -- function pointer
为什么 obj.method 不是完整的指向类成员的指针?
【问题讨论】:
-
你能澄清一下“为什么 obj.method 不是完整的指向类成员的指针吗?”这是什么意思?
-
(*pt2Object.*fpt)(string);不起作用。你需要(pt2Object->*fpt)(string);。 -
Naveen,我想获得指向特定对象(obj)和特定类成员(成员)的单个参数。但似乎我开始明白了......
-
土豆泥,为什么? *pt2Object 是一个取消引用的指针,可以使用 '.' 访问成员,不是吗?
-
后缀
.*绑定在前缀*之前。你必须这样做((*pt2Object).*fpt)(string);。
标签: c++ class pointers function-pointers