c++ 中,局部对象a不是从栈中撤出了吗,为什么它的别名还可以正常操作??;
#include<iostream>using namespace std;
class A
{
public:
A(int i) { x = i; cout << "构造" << endl; }
int get() { return x; }
void set(int i) { x = i; }
~A() { x = NULL; cout << "析构" << endl; }
private:
int x;
};
A &func();
int main()
{
A &r = func();
cout << r.get() << endl;//别名r获取的是局部对象a
r.set(6);
cout << r.get() << endl;//问题:局部对象a不是从栈中撤出了吗,为什么它的别名还可以正常操作??;
return 0;
}
A &func()
{
A a(223);
return a;
}