假设我有这段代码,它可以编译。 a2
超出范围后,a1
保持什么状态?它仍然是对 a2
的有效引用吗? a1
是否占用了无法再访问的内存?
class A
{
public:
void something();
};
void A::something()
{
}
A a1;
int main(void)
{
{
A a2;
a1 = a2;
}
a1.something();
}
最佳答案
语句 a1 = a2;
copys a2
到 a1
使用复制赋值运算符 类 A
。
a2
超出范围这一事实并不重要:a1.something();
是明确定义的。
这里没有引用。
关于c++ - 更改超出范围的变量引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55966843/