当引用的初始式是一个左值(是一个对象,你可以取得他的地址)时,其初始化就是非常简单的事情。普通T&的初始式必须是一个T类型的。而cosnt T&则不必是一个左值,甚至可以不是T类型的。在这样的情况下,经过以下几个步骤。
(1)首先,如果需要的话,将应用到类型T的隐式类型转换。
(2)而后,将结果存入一个类型T的临时变量。
(3)最后,将此临时变量用作初始化的值。
例如
double& d=1; //错误,初始式必须式左值
const double& cd=1; //ok
对后一个初始化的解释是:
double temp=double(1); // 首先建立一个具有正确数据类型的临时变量
const double& cd=temp; //而后用这个临时变量作为cd的初始式
posted on 2007-01-15 11:03
探丫头 阅读(1702)
评论(1) 编辑 收藏 引用 所属分类:
编程语言——C++