【问题标题】:Pass an object and a member function as parameters将对象和成员函数作为参数传递
【发布时间】:2013-06-20 03:20:06
【问题描述】:

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

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

及用法:

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

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

【问题讨论】:

    标签: c++ templates function-pointers


    【解决方案1】:

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

    (owner.*func)();
    

    【讨论】:

      猜你喜欢
      • 2012-03-07
      • 2017-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-27
      • 1970-01-01
      • 2018-09-18
      • 2013-06-29
      相关资源
      最近更新 更多