Dev*_*der 1 c++ reference object
我正在学习C ++(来自iOS),并且想了解指针/参考用法。
在删除对象上的引用时是否正确?还是引用的变量也会被删除?
例:
Class Foo {
}
Class Faa{
asyncCall(&Foo)
}
Run Code Online (Sandbox Code Playgroud)
1。
// ...
Foo *foo = new Foo();
faa->(asyncCall(&foo);
delete foo;
// ...
Run Code Online (Sandbox Code Playgroud)
2。
// ...
Foo *foo = new Foo();
Foo& refFoo = foo;
delete foo;
// do something with refFoo
Run Code Online (Sandbox Code Playgroud)
由于您的代码示例是乱码,因此我将摆出自己的代码:
Foo* foo = new Foo();
Foo& ref = *foo;
delete foo;
// Use refFoo
Run Code Online (Sandbox Code Playgroud)
这不好。引用只是指在其他地方创建的对象。在这个例子中,*foo和ref是完全相同的对象。只要你摧毁目标,这样做delete foo;,ref是左晃来晃去。它是指不再存在的对象。访问它会导致不确定的行为。
| 归档时间: |
|
| 查看次数: |
4900 次 |
| 最近记录: |