C ++:指向类的成员函数的非相关的结构内
-
13-09-2019 - |
题
我已经做了一些阅读网上至于如何去这件事,我觉得我做正确...我的目标是有一个包含指向的成员函数结构对象的数组类。
这是我迄今为止...
typedef void (foo::*HandlerPtr)(...);
class foo
{
public:
void someFunc(...);
// ...
private:
// ...
};
struct STRUCT
{
HandlerPtr handler;
};
STRUCT stuff[]
{
{&foo::someFunc}
};
然后使用(东西[0] *处理器)(),带或不带参数的(我的确打算使用的参数列表)调用函数时,我得到“经理人”:未声明的标识符...
我必须失去了一些东西,只是不知道是什么。
解决方案
someFunc()不是一个静态方法,所以你为了通过鼠标指针到方法变量调用someFunc()需要一个Foo对象实例,即:
foo f;
f.*(stuff[0].handler)();
或者:
foo f;
HandlerPtr mthd = stuff[0].handler;
f.*mthd();
或者,使用指针:
foo *f = new foo;
f->*(stuff[0].handler)();
delete f;
或者:
foo *f = new foo;
HandlerPtr mthd = stuff[0].handler;
f->*mthd();
delete f;
不隶属于 StackOverflow