2013-08-31 112 views
1

我有以下代碼:lambda函數需要訪問對象

class A 
{ 
protected: 
    int a 
public: 
    std::function<void()> lambdaFunc; 
    A(std::function<void()> lambdaParam) : lambdaFunc(lambdaParam){} 
}; 

int main() 
{ 
    someFunctionCall(std::shared_ptr<A>(new A([](){ /*I need this to access int a*/ })); 
} 

我不知道我怎麼可以給lambda函數在這種情況下獲得了新的對象?

+0

您需要訪問哪個對象? – billz

+0

正在創建A的新實例。編輯:就這樣很明顯,我希望能夠將不同的「處理函數」函數傳遞給不同的實例。 – NeomerArcana

+0

備註:我被推薦使用'make_shared()'。因此,通話將成爲'someFunctionCall(STD :: make_shared ([](){/*...*/}));'(順便說一下原來的通話缺少一個右括號)。 –

回答