国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 扎囊县| 高阳县| 漳州市| 邵阳县| 衡阳市| 满城县| 邳州市| 五莲县| 阿克陶县| 大石桥市| 三门县| 岳阳县| 汝南县| 邢台市| 寻乌县| 上栗县| 江阴市| 九龙坡区| 板桥市| 巴楚县| 武冈市| 库尔勒市| 淮北市| 张家界市| 河北省| 桂林市| 安丘市| 肃南| 涡阳县| 德格县| 沙河市| 绥芬河市| 潢川县| 阆中市| 陵水| 兴义市| 昆明市| 正蓝旗| 北碚区| 高阳县| 唐山市|