На самом деле, если MyFun
не является статическим членом вашего класса, у него есть скрытый аргумент типа A*
, поэтому он реализован следующим образом: m_a.MyFun(...)
= ~ MyFunImpl(&m_a, ...)
.
Итак, вам нужно иметь статическую функцию MyFun
(вы не можете использовать this
внутри нее), а внутри B::Process
вызывать f()
.
Если вам нужно передать this
, обратитесь к ответу casablanca
(указатели на функции-члены).
В противном случае, если вы хотите передать аргумент, вы можете искать std::bind
или лямбда-функции (C ++ 0x), или boost::bind
до этого.