C ++指向类方法调用的指针

时间:2012-04-12 17:14:25

标签: c++ pointers methods

在我的班级Tabla中,我有一个指向方法的公共指针:

public:
    int (Tabla :: *punterofunc)(int,int);

在主要内容中,我将它指向一个类方法:

tablita.punterofunc = &Tabla :: in_lineal;

但是这个电话不起作用!

 tablita->punterofunc(num,0);

2 个答案:

答案 0 :(得分:6)

我认为你正在寻找这种美味的语法:

((tablita).*(tablita.punterofunc))(num,0);

tablita.punterofunc是成员函数指针。在对象p上调用指向成员函数o的一般语法是:

((o).*(p))(args...);

只需将其应用于您的代码即可。 (在某些情况下可能不需要一些parens(不确定),但如果你坚持这一点,它应该一直有效。)

答案 1 :(得分:1)

试试这个:

tablita.*punterofunc(num,0);