现在的位置: 首页 > 综合 > 正文

MoreEffective C++ 阅读笔记(一)—point 和 reference的区别

2013年10月26日 ⁄ 综合 ⁄ 共 540字 ⁄ 字号 评论关闭

 MoreEffective C++ 阅读笔记(一)
黑月亮 发表于 2005-10-1 21:44:00 

1. point 和 reference的区别

   区别:

   (1),在任何情况下都不能使用指向空值的引用。一个引用必须总是指向某些对象.因此如果你使用一个变量并让它指向一个对象,但是该变量在某些时候也可能不指向任何对象,这时你应该把变量声明为指针,因为这样你可以赋空值给该变量。

  (2) 不存在指向空值的引用这个事实意味着使用引用的代码效率比使用指针的要高。因为在使用引用之前不需要测试它的合法性。

  (3)指针可以被重新赋值以指向另一个不同的对象。但是引用则总是指向在初始化时被指定的对象,以后不能改变。

在以下情况下你应该使用指针,

 一是你考虑到存在不指向任何对象的可能(在这种情况下,你能够设置指针为空),

 二是你需要能够在不同的时刻指向不同的对象(在这种情况下,你能改变指针的指向)。如果总是指向一个对象并且一旦指向一个对象后就不会改变指向,那么你应该使用引用。

 三就是当你重载某个操作符时,你应该使用引用。最普通的例子是操作符[]。

 

当你知道你必须指向一个对象并且不想改变其指向时,或者在重载操作符并为防止不必要的语义误解时,你不应该使用指针。而在除此之外的其他情况下,则应使用指针
 
 

抱歉!评论已关闭.