Как вызвать указатель на функцию-член, когда она является членом данных класса?

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) (...)’
11
задан iammilind 11 June 2011 в 15:33
поделиться