#include<iostream>
using namespace std;
int* New()
{
return new int(666);
}
int Foo()
{
//method1:
int* it = New();
return *it;
//method2:
return []() { return *(new int(666)); };//Complier has a complain here
/*Both New() and Lambda are callable object, are there any differences between method1 and method2?*/
}
int main()
{
cout << Foo() << endl;
return 0;
}
我是C++新手,遇到上面的情況,我回顧了C++ Primer的章節10.3.2到10.3.3,其中介紹了lambda表達式。但它對我不起作用,我我也對我列出的最後一個註釋感到困惑。這個函數和lambda之間有什麼區別?
你叫'新'。你沒有叫拉姆達。另外,C不是C++。 – user2357112
另外,你泄漏了你分配的所有東西。 – user2357112
這裏我的意思是如果我選擇方法,我將擦除方法1。你能給我更多的細節嗎? – Chase07