いくつかの検索に基づいて解決策を適用しましたが、問題はまだ残っています。助けてくれてありがとう。
error: must use '.*' or '->*' to call pointer-to-member function ...
ソースコード:
#include <stdio.h>
class A
{
public:
struct data;
typedef int (A::*func_t)(data *);
typedef struct data
{
int i;
func_t func;
}
data;
data d;
void process()
{
d.func(&d);
}
A()
{
d.i = 999;
d.func = &A::print;
}
int print(data *d)
{
printf("%d\n", d->i);
return 0;
}
};
int main()
{
A *a = new A;
a->process();
return 0;
}