0

私のクラス Tabla には、メソッドへのパブリック ポインターがあります。

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

主に、クラスメソッドを指します:

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 に答える