std::bind 在 class 中的回调方法的构造函数中

std::bind in constructor to callback method in class

我有一个 class Foo 实例化在 class Bar.

我需要将 m_foocallback 分配给 Bar 的方法 xpto()。 我应该可以在这里使用 std::bind ,对吗?我的代码有什么问题?

class 富:

class Foo
{
public:
   Foo(std::function<void()> cb);
}

class栏:

class Bar
{
public:
   Bar(std::function<void()> cb);

   void xpto();
private:
   Foo m_foo;
}

Bar::Bar(std::function<void()> cb)
: m_foo(std::bind(&xpto)) // ERROR!!!?
{}

您对 bind() 的使用有点不对:

class Bar
{
public:
   Bar(std::function<void()> cb);

   void xpto();
private:
   Foo m_foo;
}

Bar::Bar(std::function<void()> cb)
: m_foo(std::bind(&Bar::xpto, this)
{}

应该可以。我不确定为什么 Bar 的构造函数有 cb 参数。