從《C++ Primer》上總結的使用引用類型時要注意的幾點:
(1)因爲無法令引用重新綁定到另一個對象,因此引用必須初始化。一旦初始化完成,引用將和它的初始值對象一直綁定在一起。
(2)因爲引用本身不是一個對象,所以不能定義引用的引用。
例:
int a = 5;
int &ref_a = a;
int &ref_ref_a = ref_a;
可以在圖中看到,ref_ref_a的類型並不是引用的引用,將ref_ref_a綁定到了ref_a綁定的對象a上,相當於就是將ref_ref_a綁定到了對象a上。
那怎樣算引用的引用呢?
int b = 5;
int &ref_b = b;
int & &ref_ref_b = ref_b;
int &&就是引用的引用,可以看到程序在編輯的時候就直接提示不允許使用引用的引用了。因爲引用不是對象,沒有實際的地址,引用只能綁定在對象上,所以不能定義引用的引用。
(3)引用的類型要和與之綁定的對象嚴格匹配。
(4)引用只能綁定在對象上,而不能與字面值或某個表達式的計算結果綁定在一起。