国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 建平县| 驻马店市| 威远县| 五常市| 青龙| 秦皇岛市| 蓬安县| 翁牛特旗| 武威市| 郴州市| 台中市| 上虞市| 景泰县| 缙云县| 阳山县| 德令哈市| 介休市| 阿巴嘎旗| 淳安县| 长沙县| 安丘市| 斗六市| 隆昌县| 双鸭山市| 开化县| 团风县| 襄垣县| 黄山市| 若尔盖县| 阜南县| 海安县| 鄂托克前旗| 连江县| 满洲里市| 图们市| 扬州市| 隆德县| 舟山市| 毕节市| 沐川县| 普格县|