普通引用和const引用的初始化

2021-07-23 06:13:01 字數 438 閱讀 8626

普通引用和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 在一起,而不是將初始值拷貝給引...