以下两个代码片段有什么区别?
public void foo(out classA x)
{
y = new classA();
x = y;
}
第二个:
public void foo(out classA x)
{
classA y;
x = y;
}
第二个片段是否真的很危险,因为x
现在有一个对这个 local 的引用y
,它在 exit 之后可能已经死了foo
?
为什么我们通常必须使用“新”?
我有点困惑,因为在 C++ 中,如果x
在第二个片段中是一个指针,那么该语句x = y
甚至不会编译,因为y
它不是一个指针。