fre*_*inn 0 c++ methods pointers
在我的班级Tabla中,我有一个指向方法的公共指针:
public:
int (Tabla :: *punterofunc)(int,int);
Run Code Online (Sandbox Code Playgroud)
在主要我把它指向一个类方法:
tablita.punterofunc = &Tabla :: in_lineal;
Run Code Online (Sandbox Code Playgroud)
但这个电话不起作用!
tablita->punterofunc(num,0);
Run Code Online (Sandbox Code Playgroud)
我想你正在寻找这种美味的语法:
((tablita).*(tablita.punterofunc))(num,0);
Run Code Online (Sandbox Code Playgroud)
tablita.punterofunc是一个成员函数指针.p在对象上调用指向成员函数的函数的一般语法o是:
((o).*(p))(args...);
Run Code Online (Sandbox Code Playgroud)
只需将其应用于您的代码即可.(在某些情况下可能不需要一些parens(不确定),但如果坚持这一点,它应该一直有效.)