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

首頁(yè) > 編程 > C++ > 正文

c++ const引用與非const引用介紹

2020-01-26 16:22:18
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
const引用是指向const對(duì)象的引用。
復(fù)制代碼 代碼如下:

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

可以讀取ref,但不能修改。這樣做是有意義的,因?yàn)閕本身就不可修改,當(dāng)然也不能通過(guò)ref來(lái)修改了。所以也就有將const變量賦值給非const引用是非法的。
復(fù)制代碼 代碼如下:

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

非const引用是指向非const類型變量的引用。
const引用可以初始化為不同類型的對(duì)象或者右值(如字面值常量),但非const引用不可以。
復(fù)制代碼 代碼如下:

// 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為例解釋原因,編譯器會(huì)把ref2相關(guān)的代碼轉(zhuǎn)換如下:
復(fù)制代碼 代碼如下:

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

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

非const引用只能綁定到與該引用同類型的對(duì)象,const引用則可以綁定到不同但相關(guān)的類型的對(duì)象或綁定到右值。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 德令哈市| 安泽县| 临湘市| 新源县| 南宁市| 濮阳县| 新巴尔虎右旗| 册亨县| 宁乡县| 左云县| 合山市| 邢台市| 新建县| 新田县| 七台河市| 汝城县| 尤溪县| 同仁县| 高陵县| 泾阳县| 恩平市| 梅河口市| 清流县| 迁安市| 金川县| 双牌县| 拜城县| 阳谷县| 桐城市| 都兰县| 弋阳县| 疏附县| 上饶县| 安仁县| 景谷| 乌审旗| 车险| 泸水县| 潜江市| 石台县| 淳化县|