這裏有很好的描述瞭如何通過指針調用成員函數: http://www.newty.de/fpt/functor.html是否有可能在C++中將指針類成員作爲單個參數傳遞?
但仿函數需要獲得2個參數:指針到對象,指針到成員函數:
TSpecificFunctor(TClass* _pt2Object, void(TClass::*_fpt)(const char*))
{ pt2Object = _pt2Object; fpt=_fpt; }
撥打:
(*pt2Object.*fpt)(string);
是否有可能通過一個參數,如C-風格:
func() -- call
func -- function pointer
爲什麼obj.method不是完整的指針類成員?
您能否澄清一下聲明「爲什麼obj.method不是完整的指針類-會員?」這是什麼意思? – Naveen 2012-07-05 09:04:20
'(* pt2Object。* fpt)(string);'不起作用。你需要'(pt2Object - > * fpt)(string);'。 – Potatoswatter 2012-07-05 09:06:28
Naveen,我想獲得指向特定對象(obj)和特定類成員(成員)的單個參數。但似乎我開始明白......多態性並沒有給我潛力做我想做的事。 – legotron 2012-07-05 09:11:23