提问:局部对象没有被系统收回,是什么原因?
#include <iostream>
using namespace std;
class A
{
public:
A(int i) { x = i; cout << "构造" << endl; }
int get() { return x; }
~A() { cout << "析构函数" << endl; }
private:
int x;
};
A &func();
int main()
{
A &r = func();
cout << r.get() << endl;
return 0;
}
A &func()
{
A a(23);
return a;//这里返回局部对象应该被系统清楚,为什么输出结果还是23?
}
结果:
构造
析构函数
23