2016-07-22 77 views
-1

我想在使用std :: function的另一種方法之後調用方法。假設我有這樣的事情C++是否可以將多個方法綁定在一起?

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,以便在調用它之後調用rock。我知道我可以簡單地擁有bar calle rock但那不是我正在尋找的。可以綁定幫我完成這個?

+0

遺憾,是一個錯字我想岩石被稱爲 –

+0

在哪裏'的std :: string'傳遞給'rock'從何而來? – aschepler

+0

使其變得簡單 - 假設沒有字符串。我正在探索我的選項 –

回答

1

std::bind這裏不會真的有幫助,但lambda會。

fptr = [this](int n) { bar(n); rock(); }; 
相關問題