将对象和成员函数作为参数传递

时间:2013-06-19 19:06:11

标签: c++ templates function-pointers

我正在尝试创建一个调用类的成员函数的模板函数。

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

和用法:

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

但编译器返回错误C2664。 有什么问题?

1 个答案:

答案 0 :(得分:3)

func是一个指向成员函数的指针;有一种特殊的语法来调用它们:

(owner.*func)();