私のクラス Tabla には、メソッドへのパブリック ポインターがあります。
public:
int (Tabla :: *punterofunc)(int,int);
主に、クラスメソッドを指します:
tablita.punterofunc = &Tabla :: in_lineal;
しかし、この呼び出しは機能しません。
tablita->punterofunc(num,0);
このおいしい構文を探していると思います:
((tablita).*(tablita.punterofunc))(num,0);
tablita.punterofunc
メンバ関数ポインタです。p
オブジェクトでポインターからメンバー関数を呼び出すための一般的な構文は次のとおりo
です。
((o).*(p))(args...);
それをコードに適用するだけです。(一部の括弧はすべての場合に必要というわけではありません (確かではありません) が、それに固執すれば、常に機能するはずです。)
これを試して:
tablita.*punterofunc(num,0);