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

首頁(yè) > 編程 > .NET > 正文

新手入門(mén):C++下的引用類(lèi)型

2024-07-10 13:13:53
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
引用類(lèi)型也稱(chēng)別名,它是個(gè)很有趣的東西。在c++ 下你可以把它看作是另外的一種指針,通過(guò)引用類(lèi)型我們同樣也可以間接的操作對(duì)象,引用類(lèi)型主要是用在函數(shù)的形式參數(shù)上,通常我們使用它是把類(lèi)對(duì)象傳遞給一個(gè)函數(shù)。

  引用對(duì)象采用類(lèi)型名加上&符號(hào)和名稱(chēng)的方式進(jìn)行定義。例如:(int &test;),這里我們就定義了一個(gè)int類(lèi)型的名為test 的引用,但是int &test;這樣的方式是不能夠被編譯成功的,因?yàn)橐玫亩x必須同時(shí)給應(yīng)用進(jìn)行賦值操作,這里的賦值并不是說(shuō)把變量的值傳遞給引用,而是把引用指向變量,寫(xiě)成這樣就對(duì)了:(int &test=變量名;)。

#include <iostream
using namespace std; 

void main(void


int a=10; 
int &test=a; 
test=test+2; 

cout << &a << "|" << &test << "|" << a << "|" <<test << endl; 

cin.get(); 
}

  觀察并編譯運(yùn)行上面的代碼你會(huì)發(fā)現(xiàn)&a和&test的地址顯示是相同的,a和test的值顯示也是一樣的!

  結(jié)合前一個(gè)教程的內(nèi)容我們來(lái)說(shuō)一下const引用的相關(guān)內(nèi)容,這里要特別注意,和前一個(gè)教程一樣帶const修飾的引用同樣也容易混淆概念! 

  const修飾如果用在引用上會(huì)有一個(gè)特別之處,它的奧妙就在于可以進(jìn)行不同類(lèi)型的對(duì)象的初始化,而這一切在普通變量操作上是不可能的下面我們來(lái)看一個(gè)例子:

#include <iostream
using namespace std; 

void main(void


int a=10; 
//double &test = a + 1.2f; //這句就是錯(cuò)誤的! 
const double &test = a + 1.2f; 

cout << &a << "|" << &test << "|" << a << "|" <<test << endl; 

cin.get(); 
}

  上面的代碼足夠說(shuō)明問(wèn)題了,這就是const修飾帶來(lái)的好處,但是聰明的人會(huì)在輸出的時(shí)候發(fā)現(xiàn)一個(gè)問(wèn)題,就是a和test的值的輸出不同,按照最先說(shuō)的道理應(yīng)該可以改變a的值呀,為什么在這里卻有沒(méi)有能夠改變呢? 

  道理是這樣的,const修飾過(guò)后的引用在編譯器內(nèi)部是這樣進(jìn)行變化的。

int a=10; 
const double &test = a + 1.2f;

  這樣的一段代碼在編譯器認(rèn)為卻是下面的方式進(jìn)行的

int a=10; 
int temp = a; 
const double &test = temp + 12.f

  這里其實(shí)是把a(bǔ)的值賦給了一個(gè)臨時(shí)temp 變量而后test獲得的卻是temp+12.f 改變的是temp而不是a,所以就出現(xiàn)了a和test顯示的值不同的情況,這里要特別注意,這是一個(gè)很容易混淆的地方,在編寫(xiě)程序的時(shí)候要特別仔細(xì),以免出現(xiàn)了問(wèn)題卻檢查不出為什么

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 湘乡市| 文昌市| 珲春市| 内丘县| 武义县| 丰城市| 三亚市| 通化县| 湾仔区| 吉隆县| 光泽县| 沁源县| 鹤峰县| 浮梁县| 类乌齐县| 渭源县| 葵青区| 金溪县| 衡阳县| 云阳县| 临澧县| 莆田市| 涿鹿县| 阿瓦提县| 中方县| 永城市| 金门县| 河北省| 宝丰县| 时尚| 靖宇县| 柳州市| 无极县| 克什克腾旗| 桃源县| 大悟县| 南安市| 阆中市| 舟山市| 汕头市| 平陆县|