Aus*_*son 2 c++ function-pointers member-functions
我已经在线阅读了如何解决这个问题,我认为我正确地做了...我的目标是拥有一个结构对象数组,其中包含指向类的成员函数的指针.
这是我到目前为止所拥有的......
typedef void (foo::*HandlerPtr)(...);
class foo
{
public:
void someFunc(...);
// ...
private:
// ...
};
struct STRUCT
{
HandlerPtr handler;
};
STRUCT stuff[]
{
{&foo::someFunc}
};
Run Code Online (Sandbox Code Playgroud)
然后在使用(stuff [0].*handler)(),有或没有参数(我确实打算使用参数列表)调用函数时,我得到"处理程序":未声明的标识符...
我必须遗漏一些东西,只是不知道是什么.
someFunc()不是静态方法,所以你需要一个foo对象实例,以便通过指针到方法变量调用someFunc(),即:
foo f;
f.*(stuff[0].handler)();
Run Code Online (Sandbox Code Playgroud)
要么:
foo f;
HandlerPtr mthd = stuff[0].handler;
f.*mthd();
Run Code Online (Sandbox Code Playgroud)
或者,使用指针:
foo *f = new foo;
f->*(stuff[0].handler)();
delete f;
Run Code Online (Sandbox Code Playgroud)
要么:
foo *f = new foo;
HandlerPtr mthd = stuff[0].handler;
f->*mthd();
delete f;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
929 次 |
| 最近记录: |