0

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

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

在 main 中,我将它指向一个类方法:

tablita.punterofunc = &Tabla :: in_lineal;

但是这个电话不起作用!

 tablita->punterofunc(num,0);
4

2 回答 2

6

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

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

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

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

只需将其应用于您的代码即可。(有些括号可能并非在所有情况下都是必需的(不确定),但如果你坚持这样做,它应该一直有效。)

于 2012-04-12T17:22:15.867 回答
1

试试这个:

tablita.*punterofunc(num,0);
于 2012-04-12T17:20:47.907 回答