1
我想創建一個調用類的成員函數的模板函數。傳遞一個對象和一個成員函數作爲參數
template<typename T>
void call(T owner, void (T::*func)())
{
(owner.func());
}
與用法:
Foo a;
call(a, &Foo::printname);
但是,編譯器返回錯誤C2664。 什麼問題?
我想創建一個調用類的成員函數的模板函數。傳遞一個對象和一個成員函數作爲參數
template<typename T>
void call(T owner, void (T::*func)())
{
(owner.func());
}
與用法:
Foo a;
call(a, &Foo::printname);
但是,編譯器返回錯誤C2664。 什麼問題?
func
是一個指針到成員函數;有一個特殊的語法來調用它們:
(owner.*func)();