raf*_*lxy 10 c++ pointers reference
我可以使用一个对象作为它的指针或它的引用.我知道不同之处在于必须手动删除指针,并且引用仍然存在,直到它们超出范围.
我什么时候应该使用它们?有什么实际区别?
这些问题都没有回答我的疑虑:
sus*_*att 18
引用基本上是一个带有限制的指针(必须在创建时绑定,不能反弹/ null).如果您的代码使用这些限制是有意义的,那么使用引用而不是指针允许编译器警告您意外违反它们.
它与const限定符非常相似:语言可以在没有它的情况下存在,它只是作为一种额外的奖励功能,可以更容易地开发安全的代码.
"指针我必须删除并引用它们,直到它们的范围完成."
不,那是完全错误的.
new必须删除分配的对象[*].new不得删除未分配的对象.可以有一个指向未分配的对象的指针new,并且可以引用已分配的对象new.
指针或引用是访问对象的一种方式,但不是对象本身,并且与对象的创建方式无关.概念上的区别在于引用是对象的名称,而指针是包含另一个对象的地址的对象.实际差异,您如何选择使用哪一个,包括每个的语法,以及引用不能为空且无法重新设定的事实.
[*]用delete.new[]必须删除分配的数组delete[].有一些工具可以帮助跟踪分配的资源并为你做这些调用,称为智能指针,因此,自己明确地进行调用应该是非常罕见的,而不是仅仅安排它来完成,但不过它必须完成.
| 归档时间: |
|
| 查看次数: |
4624 次 |
| 最近记录: |