C++中的引用

引用是一種複合類型(compound type),我們通常所說的引用爲左值引用(lvalue reference),C++11中新增加了一種引用,叫做右值引用(rvalue reference),這種引用主要用於內置類中,稍後介紹,今天主要講我們通常說的引用,也就是左值引用。

引用,其實是爲對象另起一個名字。

  •  通過&定義,當然引用定義的時候必須初始化
                 int  ival;

int &preValue = ival;

  • 一般情況下引用的對象爲變量、引用的類型與所引用的對象的類型必須一致
  以下情況的引用一般是錯誤的

double  &preValue =  ival;// ival爲int型

int &preValue = 1.0;

 引用不同於賦值,它是將對象與引用綁定到一起,也可以這樣理解一個對象有兩個名字,不論用哪個名字改變,該對象都會發生變化

引用本身不是一個對象,所以不能定義引用的引用。

 例如:上述例子中,ival = 2;preValue 也爲2;若執行preValue  = 10;則此時使用ival,他對應的值也爲10;


特殊情況下,可以不遵守引用的對象必須爲變量,類型必須相同的規定,下面我們闡述這種特殊情況

  使用引用常量的時候,

const  double & ival= 1.9;

int ival = 4;  const double  &preValue = ival ;

     以上兩個例子都是正確的。但是,我們不能通過改變preValue的值今兒改變對象ival 的值 

明確一點:const類型的變量,除了初始化的時候可以賦值,其餘情況下不能通過“=”改變他的值




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章