【问题标题】:C++ is it possible to bind multiple methods together?C ++可以将多个方法绑定在一起吗?
【发布时间】:2016-07-22 22:55:21
【问题描述】:

我想使用 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),则调用方法栏。 我的问题是我可以指定或操作语句 1,以便在调用 bar 之后调用 rock。我知道我可以简单地拥有bar calle rock 但这不是我想要的。 bind 能帮我完成这个吗?

【问题讨论】:

  • 抱歉打错字了,我想叫rock
  • 传递给rockstd::string 应该来自哪里?
  • 让它变得简单——假设没有字符串。我正在探索我的选择
  • 为什么不使用 lambda 而不是绑定?
  • 是的,这绝对是一个选择——你能把它作为答案吗

标签: function c++11 stdbind


【解决方案1】:

std::bind 在这里不会有真正的帮助,但 lambda 会。

fptr = [this](int n) { bar(n); rock(); };

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-04
    • 2021-03-28
    • 1970-01-01
    相关资源
    最近更新 更多