2013-06-19 76 views
1

我想創建一個調用類的成員函數的模板函數。傳遞一個對象和一個成員函數作爲參數

template<typename T> 
void call(T owner, void (T::*func)()) 
{ 
    (owner.func()); 
} 

與用法:

Foo a; 
call(a, &Foo::printname); 

但是,編譯器返回錯誤C2664。 什麼問題?

回答

3

func是一個指針到成員函數;有一個特殊的語法來調用它們:

(owner.*func)(); 
相關問題