独立引用“引用(reference)”与指针象似但不是指针。引用主要有3种用法:
从功能上来说,引用型变量又可以看做事被引用变量的“别名”,这两个变量只是名称不同,变量的地址是同一个(共用体中的元素也是一样)。使用“引用”的好处主要是可以“逆向引用”。 常量也可以被引用,例如:“const int &ref = 10;”,这也是正确的,但这样定义无任何意义。定义独立引用时需要注意以下规则:
变量引用举例:
100 0034F84C 0034F84C 函数的参数引用许多教程在讲解参数引用时都喜欢选择交换两参数内容的swap(int &x, int &y)函数作例子,这的确很容易说明清楚,但并不能说这种用法优于指针作参数。
i=12 j=25 i=25 j=12 对象引用作参数初学者可以先跳过这一节,待学完“类”之后再来看。
从上面例子可以看出,用普通变量方式传递参数时,函数首先将参数复制一个副本,在函数体内使用的是副本。这个副本和参数自身不是同一个地址。而指针方式和引用方式并不产生副本,函数体内用的真是参数自身。需要注意的是,产生副本时调用了类的缺省“拷贝构造函数”,这个“拷贝构造函数”并不调用构造函数就产生了一个副本,有关详细内容参见后面章节。 作为函数返回值的引用类型下面的代码略有深度,初学者如果无法理解请跳过。请先看下面的程序,有没有问题?
上面这个函数的返回值是引用类型,通过函数结果的设置反过来去改变“源头”数据,这种“逆向引用”为C++增强了很多功能,当然也有许多需要注意的地方。 由于本教程面向初学者,因此到此为止,不再深入下去,。 |
|