C++ 是否可以将多个方法绑定在一起?
C++ is it possible to bind multiple methods together?
我想使用 std::function 在另一个方法之后调用一个方法。假设我有这样的东西
class foo
{
std::function<void(int)> fptr;
void bar(int){
}
void rock(){
}
public:
foo() {
fptr = bind(&foo::bar,this,std::place_holder::_1); //<------Statement 1
}
}
现在由于语句 1,如果我调用 fptr(12)
方法 bar 被调用。
我的问题是我能否指定或操作语句 1,以便在调用 bar 之后调用它 rock
。我知道我可以简单地让 bar
calle rock
但这不是我想要的。绑定可以帮我完成这个吗?
std::bind
在这里没有什么用,但是 lambda 会。
fptr = [this](int n) { bar(n); rock(); };
我想使用 std::function 在另一个方法之后调用一个方法。假设我有这样的东西
class foo
{
std::function<void(int)> fptr;
void bar(int){
}
void rock(){
}
public:
foo() {
fptr = bind(&foo::bar,this,std::place_holder::_1); //<------Statement 1
}
}
现在由于语句 1,如果我调用 fptr(12)
方法 bar 被调用。
我的问题是我能否指定或操作语句 1,以便在调用 bar 之后调用它 rock
。我知道我可以简单地让 bar
calle rock
但这不是我想要的。绑定可以帮我完成这个吗?
std::bind
在这里没有什么用,但是 lambda 会。
fptr = [this](int n) { bar(n); rock(); };