普通引用和const引用的初始化
當引用的初始式是乙個左值(是乙個物件,你可以取得他的位址)時,其初始化就是非常簡單的事情。普通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的初始式
const引用和普通引用
一 引用所繫結的型別和所引用的物件型別需嚴格匹配。除了兩個例外 1 普通引用必須繫結到物件,不能繫結到常量 int a 3 錯誤 2 const引用 1 初始化const引用允許用任意表示式,只要該表示式的結果能轉化為引用型別即可 2 允許乙個const引用繫結非常量物件,字面值,甚至是一般表示式 ...
引用 const引用和非const引用
引用構造了物件的乙個同義詞,是c 物件的另乙個名字。在實際程式中,引用的主要作用是作函式的形參。引用是一種復合型別1,它通過在變數名前新增 來定義。在使用引用的情況下,每一種引用型別都關聯到某一其他型別。c 不能定義引用型別的引用,但是可以定義任何其他型別的引用。int a 100 int refa...
指標和引用,const 指標和const 引用
指標和引用是在使用中經常弄混淆的兩個概念。引用 reference 為物件起了另外乙個名字,用符號 表示。name,例如 int i 1024 int ref i 一般在初始化變數時,初始值會被拷貝到新建立的物件中,然而定義引用時,程式把引用和它的初始值繫結 bind 在一起,而不是將初始值拷貝給引...