3 回答
![?](http://img1.sycdn.imooc.com/545864190001966102200220-100-100.jpg)
TA贡献2080条经验 获得超4个赞
boost::optional
.
如果你提供 nullptr
作为论点,你将进入一个不明确的-行为-土地; 引用属性版本不允许(不容易发现技巧)1的问题。 对于用户来说,引用属性版本更容易理解:您必须提供一个有效的对象,而不是可能为NULL的对象。
nullptr
![?](http://img1.sycdn.imooc.com/545862db00017f3402200220-100-100.jpg)
TA贡献1784条经验 获得超2个赞
可以时使用引用,必要时使用指针。
当您不需要“重新处理”时,引用通常比指针更好。这通常意味着引用在类的公共接口中最有用。引用通常出现在对象的皮肤上,指针出现在内部。
上述情况的例外情况是,函数的参数或返回值需要“Sentinel”引用-一个不引用对象的引用。这通常最好是返回/接受一个指针,并赋予空指针这个特殊的意义(引用必须总是别名对象,而不是取消引用的空指针)。
注意:老C行程序员有时不喜欢引用,因为他们提供的引用语义在调用者的代码中不明确。然而,经过一些C+经验之后,人们很快就意识到这是一种信息隐藏形式,它是一种资产,而不是一种负债。例如,程序员应该用问题的语言而不是机器的语言来编写代码。
- 3 回答
- 0 关注
- 385 浏览
添加回答
举报