首页 相关文章 More Effective C++:指针与引用的区别

More Effective C++:指针与引用的区别


  指针与引用看上去完全不同(指针用操作符’*’和’-’,引用使用操作符’.’),但是它们似乎有相同的功能。指针与引用都是让你间接引用其他对象。你如何决定在什么时候使用指针,在什么时候使用引用呢?
  
  首先,要熟悉到在任何情况下都不能用指向空值的引用。一个引用必须总是指向某些对象。因此假如你使用一个变量并让它指向一个对象,但是该变量在某些时候也可能不指向任何对象,这时你应该把变量声明为指针,因为这样你可以赋空值给该变量。相反,假如变量肯定指向一个对象,例如你的设计不答应变量为空,这时你就可以把变量声明为引用。
  
  “但是,请等一下”,你怀疑地问,“这样的代码会产生什么样的后果?”
  
  char *pc = 0; // 设置指针为空值
  char& rc = *pc; // 让引用指向空值
  这是非常有害的,毫无疑问。结果将是不确定的(编译器能产生一些输出,导致任何事情都有可能发生),应该躲开写出这样代码的人除非他们同意改正错误。假如你担心这样的代码会出现在你的软件里,那么你最好完全避免使用引用,要不然就去让更优秀的程序员去做。我们以后将忽略一个引用指向空值的可能性。
  
  因为引用肯定会指向...[ 查看全文 ]

2016-02-19 标签:

More Effective C++:指针与引用的区别的相关文章

手机页面
收藏网站 回到头部