我不明白这段代码是如何工作的:
class AAA {
public:
short a, b;
};
AAA &getRef() {
AAA aaa = {2, 6};
return aaa;
} // 'aaa' is destroyed here right?
int main() {
AAA &ref = getRef();
cout << ref.a << ", " << ref.b << endl;
cin.ignore();
return 0;
}
ref.a
尝试访问and不应该有错误ref.b
吗?当我使用指针时,我也没有收到错误。我的意思是,这每次都会打印“2, 6” 。
编辑:是因为内存仍然设置为这些数字吗?