std::bind 在 class 中的回调方法的构造函数中
std::bind in constructor to callback method in class
我有一个 class Foo
实例化在 class Bar
.
我需要将 m_foo
的 callback
分配给 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
参数。
我有一个 class Foo
实例化在 class Bar
.
我需要将 m_foo
的 callback
分配给 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
参数。