c++成员函数指针作为模板参数要咋实现

在C++里,调用成员函数不能脱离对象。你想要的应该是这样:class Foo { public: void foo(int i) { ... }};template\u0026lt;typename T, typename F\u0026gt;void Bar(T obj, F f, int i) { (obj.*f)(i);}int main() { int i = 0; Foo obj; Bar(obj, \u0026amp;Foo::foo, i); return 0;}
■网友
你可以这样试试。#include\u0026lt;iostream\u0026gt;#include\u0026lt;functional\u0026gt;using namespace std;class C{public: static void f(int i) { cout \u0026lt;\u0026lt; i \u0026lt;\u0026lt; endl; } void b(int i) { cout \u0026lt;\u0026lt; i \u0026lt;\u0026lt; endl; }};template \u0026lt;typename F\u0026gt;void fun(F f, int i){ f(i);}int main(){ int i = 233; // 1 fun(C::f, i); // 2 C c; auto b = std::bind(C::b, \u0026amp;c, std::placeholders::_1); fun(b, i); // 3 auto d = (int i) { C c; c.b(i); }; fun(d, i); return 0;}
■网友
【c++成员函数指针作为模板参数要咋实现】 static

■网友
成员函数指针没有对应对象,怎么运行?


    推荐阅读