struct B
{
void (B::*pf)(int, int); // data member
B () : pf(&B::foo) {}
void foo (int i, int j) { cout<<"foo(int, int)\n"; } // target method
};
int main ()
{
B obj;
// how to call foo() using obj.pf ?
}
В приведенном выше тестовом коде pf
является членом данных B
. Какое грамматическое правило вызывает его? Это должно быть прямо, но я не получаю подходящего совпадения. например Если я попробую obj. * Pf (0,0);
, то получу:
error: must use ‘.*’ or ‘->*’ to call pointer-to-member function in ‘pf (...)’, e.g. ‘(... ->* pf) (...)’