2013-08-31 79 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 ([](){/*...*/}));'(顺便说一下原来的通话缺少一个右括号)。 –

回答