??? 當(dāng)引用的初始式是一個(gè)左值(是一個(gè)對(duì)象,你可以取得他的地址)時(shí),其初始化就是非常簡(jiǎn)單的事情。普通T&的初始式必須是一個(gè)T類型的。而cosnt T&則不必是一個(gè)左值,甚至可以不是T類型的。在這樣的情況下,經(jīng)過以下幾個(gè)步驟。
??? (1)首先,如果需要的話,將應(yīng)用到類型T的隱式類型轉(zhuǎn)換。
????(2)而后,將結(jié)果存入一個(gè)類型T的臨時(shí)變量。
??? (3)最后,將此臨時(shí)變量用作初始化的值。
例如
double& d=1;? //錯(cuò)誤,初始式必須式左值
const double& cd=1;? //ok
對(duì)后一個(gè)初始化的解釋是:
double temp=double(1);?? // 首先建立一個(gè)具有正確數(shù)據(jù)類型的臨時(shí)變量
const double& cd=temp;? //而后用這個(gè)臨時(shí)變量作為cd的初始式
posted on 2007-01-15 11:03
探丫頭 閱讀(1714)
評(píng)論(1) 編輯 收藏 引用 所屬分類:
編程語言——C++