Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1663503
  • 博文数量: 607
  • 博客积分: 10031
  • 博客等级: 上将
  • 技术积分: 6633
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-30 17:41
文章分类

全部博文(607)

文章存档

2011年(2)

2010年(15)

2009年(58)

2008年(172)

2007年(211)

2006年(149)

我的朋友

分类: C/C++

2007-02-22 19:22:17

引用和指针的使用区别

 

引用定义时必须初始化

引用初始化的方式:

    1    object &a = object();

    2   在构造函数的初始化列表里进行


引用定义后引用对象的地址不得再改变.

引用的内存不能删除,一般为栈变量。


引用应用于2种情况

函数的形参

例1: void f(Class_A const & a_object);
这是引用最常用到地方。以前C中是使用指针,但指针有很多弊端。
其一就是可能传入零指针,这给写函数的带来了很大的负担(因为他要考虑这种错误使用,而大家都知道异常处理是最复杂难缠的了)。
其二就是它给使用者带来很多不便,每次都要&对象。

引用其实就是指针,但它比一般指针更安全,因为它不会什么都不引用,也不会改变所指;再就是它比一般指针更美观。


类成员的定义

例2:class MyClass {
        Class_B & i_object;
    public:
        MyClass(Class_B & a_init) :i_object(a_init) {...}
        ...      
    };
这里类成员使用了引用类型,这个整个类的设计带来了便利,减少了异常处理的开销(人和机器都省了)。如果使用指针的话,每个MyClass的成员函数都要在使用 i_object时考虑空指针的情况。



 

阅读(704) | 评论(0) | 转发(0) |
0

上一篇:Const 用法小结

下一篇:如何选购基金

给主人留下些什么吧!~~