More Effective C++ 条款01:仔细区别pointers和references

仔细区别pointers(指针)和references(引用).

首先,必须认识一点,没有所谓的null reference。一个reference必须总代表某个对象。
所以如果你有一个变量,其目的是用来指向另一个对象,但是也有可能它不指向(代表)任何对象,那么就应该使用pointer,因为可以将pointer设置为null.
如果一个变量总是必须代表一个对象,如果设计不允许这个变量为null,那么你应该使用reference。

reference必须有初值。指针没有这样的限制。
pointers可以被重新赋值,指向了另一个对象,reference总是指向它最初获得的那个对象。
总结:当你知道你需要指向某个东西,而且绝不会改变指向其他东西,或是当你实现一个操作符而其语法需求无法由pointers达成,你就应该选择references,任何其他时候,请采用pointers。

  1. 引用为对象的别名。引用不可以为空,但指针可以为空。定义一个引用时,必须初始化。
  2. 引用不可以改变指向,但指针可以改变指向,而指向其他对象。
  3. 引用的大小是所指向的变量的大小,因为引用只是一个别名而已;指针是指针本身的大小,4个字节。
  4. 引用比指针更安全。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值