2016-07-22 1 views
-1

std :: function을 사용하는 다른 메서드 다음에 메서드를 호출하고 싶습니다. 내가 방법 바가이라고 fptr(12)를 호출하는 경우 지금 때문에 문 1의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을 지정하거나 조작하여 bar를 호출 한 후에 rock을 호출 할 수 있도록하는 것입니다. 나는 내가 간단하게 bar calle rock을 가질 수 있었다. 그러나 thats 내가 무엇을 찾고 있는지에 관해 안다. 이 일을 도와 줄 수있어?

+0

그 어디'표준 : string'가 전달됩니다 –

+0

을 호출 할 내가 바위를 원 오타 미안'에서 오는 가정 rock'? – aschepler

+0

간단하게 - 문자열이 없다고 가정합니다. 내 옵션을 탐험 중입니다 –

답변

1

std::bind 여기서는 도움이되지 않지만 람다는 도움이됩니다.

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