国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

淺談C++ const引用以及非const引用

2020-02-24 14:37:22
字體:
供稿:網(wǎng)友

如果你對C++++引用還不是很了解,那可以先看看這篇淺談C++ const引用以及非const引用,通俗易懂的說明,盡量讓大家掌握運用和基本概念的理解,感興趣的朋友來了解下,或許本文對你走上C++的路有所幫助。

const引用是指向const對象的引用。


const int i = 10;
const int &ref = i;


可以讀取ref,但不能修改。這樣做是有意義的,因為i本身就不可修改,當(dāng)然也不能通過ref來修改了。所以也就有將const變量賦值給非const引用是非法的。

?

?


int &ref1 = i; // error: nonconst reference to a const object


非const引用是指向非const類型變量的引用。
const引用可以初始化為不同類型的對象或者右值(如字面值常量),但非const引用不可以。

?

?


// legal for const references only
int i = 10;
const int & ref = 42;
const int & ref1 = r + i;
double d = 3.14;
const int &ref2 = d;


以綁定到不同類型的ref2為例解釋原因,編譯器會把ref2相關(guān)的代碼轉(zhuǎn)換如下:

?

?


int temp = d;
const int &ref2 = temp; // bind ref2 to temporary


ref2實際上是綁定到一個臨時變量上,如果ref2不為const,那么按道理就可以通過修改ref2而修改d的值,但實際上d并不會改變。所以為了避免這個問題,ref2只能是const。

非const引用只能綁定到與該引用同類型的對象,const引用則可以綁定到不同但相關(guān)的類型的對象或綁定到右值。

以上就是淺談C++ const引用以及非const引用的介紹,如果大家想了解更多相關(guān)內(nèi)容,請持續(xù)關(guān)注本站,武林小編將會在第一時間為大家?guī)砀玫慕?jīng)典內(nèi)容。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 铜山县| 沙湾县| 绵竹市| 竹溪县| 波密县| 九台市| 司法| 余干县| 嘉定区| 蕲春县| 深水埗区| 凤山县| 惠州市| 民权县| 永修县| 万安县| 酒泉市| 兴业县| 万载县| 涿鹿县| 凉城县| 临澧县| 武安市| 云安县| 长治县| 阜新| 辽中县| 海口市| 临清市| 青铜峡市| 仙游县| 湘阴县| 灵宝市| 清流县| 明星| 株洲县| 河西区| 邓州市| 桂林市| 景洪市| 讷河市|