我有一个课程Foo
,它在课程Bar
中实例化。
我需要将callback
m_foo
Bar
分配给名为xpto()
的{{1}}方法。
我应该可以在这里使用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!!!?
{}
答案 0 :(得分:3)
您在使用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)
{}
那应该有用。我不确定为什么你对cb
的构造函数有Bar
参数。