我有一个 Foo
类,它在 Bar
类中实例化。
我需要将 m_foo
的 callback
分配给名为 xpto()
的 Bar
方法。
我应该可以在这里使用 std::bind
,对吗?我的代码有什么问题?
Foo 类:
class Foo
{
public:
Foo(std::function<void()> cb);
}
酒吧类:
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
参数。
关于c++ - 构造函数中的 std::bind 到类中的回调方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32993031/