引用類型與指針的區別


引用類型 由類型的實際值引用(類似於指針)表示的數據類型。如果為某個變量分配一個引用類型,則該變量將引用(或“指向”)原始值。不創建任何副本。引用類型包括類、接口、委托和裝箱值類型。

引用和指針的區別
n是m的一個引用(reference),m是被引用物(referent)。
int m;
int &n = m;
n相當於m的別名(綽號),對n的任何操作就是對m的操作。
所以n既不是m的拷貝,也不是指向m的指針,其實n就是m它自己。
 

引用的規則編輯

(1)引用被創建的同時必須被初始化( 指針則可以在任何時候被初始化)。
(2)不能有NULL引用,引用必須與合法的 存儲單元關聯(指針則可以是NULL)。
(3)一旦引用被初始化,就不能改變引用的關系(指針則可以隨時改變所指的對象)。
以下示例程序中,k被初始化為i的引用。
語句k = j並不能將k修改成為j的引用,只是把k的值改變成為6。
由於k是i的引用,所以i的值也變成了6。
int i = 5;
int j = 6;
int &k = i;
k = j; // k和i的值都變成了6
 
引用的主要功能:傳遞函數的參數和返回值。
C++語言中,函數的參數和返回值的傳遞方式有三種:值傳遞、 指針傳遞和引用傳遞。
 
引用在類中使用需注意
  其中,要注意的地方就是引用類型的 成員變量的初始化問題,它不能直接在 構造函數里初始化,必須用到 初始化列表,且 形參也必須是引用類型。
凡是有引用類型的成員變量的類,不能有 缺省構造函數。原因是引用類型的成員變量必須在類構造時進行初始化。
如果兩個類要對第三個類的數據進行共享處理,可以考慮把第三個類作為這兩個類的引用類型的成員變量


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM