В чем разница между следующими двумя фрагментами кода?
public void foo(out classA x)
{
y = new classA();
x = y;
}
и вторым:
public void foo(out classA x)
{
classA y;
x = y;
}
Правда ли, что второй фрагмент опасен, потому что x
теперь имеет ссылку на этот локальный y
, который может быть уже мертв после выхода из foo
?
Почему мы вообще должны использовать «new»?
Янемного запутано, потому что в C ++, если x
во втором фрагменте будет указателем, оператор x = y
даже не скомпилируется, так как y
не является указателем.