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