在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

C++中的“引用”

SwM2_ChinaAET ? 來(lái)源:未知 ? 作者:李倩 ? 2018-09-23 09:50 ? 次閱讀

引用就是別名,如下,rnum是num的別人,對(duì)rnum的操作實(shí)際就是對(duì)num的操作。這里的&是引用運(yùn)算符,不是取址運(yùn)算符。

intnum=1; int&rnum=num;

還可以定義一個(gè)對(duì)象的別名,如下,注意不能定義一個(gè)類的別名,因?yàn)樗鼪](méi)有具體的內(nèi)存地址。

HumanMike; Human&rMike=Mike;

還要注意一點(diǎn)是,定義引用時(shí)一定要同時(shí)對(duì)該引用進(jìn)行初始化。

函數(shù)的參數(shù)傳遞有三種方式:

(1)通過(guò)值來(lái)傳遞函數(shù)參數(shù)

當(dāng)通過(guò)值的方式給函數(shù)傳遞參數(shù)時(shí),編譯器會(huì)自動(dòng)在棧中創(chuàng)建該參數(shù)的拷貝,因此,函數(shù)處理的是這些副本,一旦函數(shù)執(zhí)行完畢,副本就被釋放,原來(lái)的參數(shù)未被修改。

voidswap(inta,intb);//聲明 swap(a,b);//調(diào)用

(2)通過(guò)指針來(lái)傳遞函數(shù)參數(shù)

當(dāng)通過(guò)指針的方式給函數(shù)傳遞參數(shù)時(shí),實(shí)際上傳遞的是參數(shù)的內(nèi)存地址,而無(wú)需在棧中創(chuàng)建參數(shù)的拷貝,因此是對(duì)參數(shù)自身的參數(shù)。

voidswap(int*a,int*b);//聲明 swap(&a,&b);//調(diào)用

(3)通過(guò)引用來(lái)傳遞函數(shù)參數(shù)

對(duì)比于指針的間接訪問(wèn),采用引用的方式可以直接訪問(wèn)內(nèi)存地址。另外,使用別名的方式傳遞參數(shù)比用指針傳遞更加方便和清晰,并且具有指針的功能。

voidswap(int&ra,int&rb);//聲明 swap(a,b);//調(diào)用

傳遞對(duì)象的方式有四種:

(1)用值來(lái)傳遞對(duì)象

假如僅僅是傳遞變量的話,采用指針或引用這種按址傳遞方式的優(yōu)勢(shì)不是很明顯,但假如是傳遞較大的對(duì)象的話,則優(yōu)勢(shì)比較明顯。這是因?yàn)榘粗捣绞较蚝瘮?shù)傳遞一個(gè)對(duì)象時(shí),會(huì)建立該對(duì)象的拷貝,而從函數(shù)返回一個(gè)對(duì)象時(shí)也要建立被返回對(duì)象的拷貝。測(cè)試代碼如下:

#include usingnamespacestd; classA { public: A(); A(A&); ~A(); }; A::A() { cout<

輸出結(jié)果:

執(zhí)行構(gòu)造函數(shù)創(chuàng)建一個(gè)對(duì)象 執(zhí)行復(fù)制構(gòu)造函數(shù)創(chuàng)建該對(duì)象的副本 執(zhí)行復(fù)制構(gòu)造函數(shù)創(chuàng)建該對(duì)象的副本 執(zhí)行析構(gòu)函數(shù)刪除該對(duì)象 執(zhí)行析構(gòu)函數(shù)刪除該對(duì)象 執(zhí)行析構(gòu)函數(shù)刪除該對(duì)象

(2)用指針來(lái)傳遞對(duì)象

測(cè)試代碼如下:

#include usingnamespacestd; classA { public: A(); A(A&); ~A(); }; A::A() { cout<

輸出結(jié)果:

執(zhí)行構(gòu)造函數(shù)創(chuàng)建一個(gè)對(duì)象

(3)用const指針來(lái)傳遞對(duì)象

采用指針來(lái)傳遞對(duì)象,雖然可以避免調(diào)用復(fù)制構(gòu)造函數(shù)和析構(gòu)函數(shù),但由于它得到了該對(duì)象的內(nèi)存地址,可以隨時(shí)修改對(duì)象的數(shù)據(jù),因此它破壞了按值傳遞的保護(hù)機(jī)制。如果用const指針來(lái)傳遞對(duì)象,就可以防止任何試圖對(duì)該對(duì)象所進(jìn)行的操作行為,并且保證返回一個(gè)不被修改的對(duì)象。測(cè)試代碼如下:

#include usingnamespacestd; classA { public: A(); A(A&); ~A(); intget()const{returnx;} voidset(inti){x=i;} private: intx; }; A::A() { cout<get()<

輸出結(jié)果:

執(zhí)行構(gòu)造函數(shù)創(chuàng)建一個(gè)對(duì)象 99

(4)用引用來(lái)傳遞對(duì)象

由于引用不能重新分配去引用另一個(gè)對(duì)象,它始終是常量。測(cè)試代碼如下:

#include usingnamespacestd; classA { public: A(); A(A&); ~A(); intget()const{returnx;} voidset(inti){x=i;} private: intx; }; A::A() { cout<

輸出結(jié)果:

執(zhí)行構(gòu)造函數(shù)創(chuàng)建一個(gè)對(duì)象 99

引用不但實(shí)現(xiàn)了指針的功能,而且使用起來(lái)更加方便,那為什么還要指針?因?yàn)橹羔樋梢詾榭眨貌荒転榭眨羔樋梢员毁x值,引用只可以被初始化,不可以被賦為另一個(gè)對(duì)象的別名。如果想使一個(gè)變量記錄不同對(duì)象的地址,就必須使用指針。要明白的一點(diǎn)是不可以直接用引用來(lái)指向堆中新建的空間,引用只是個(gè)別名,不可以作為指針來(lái)使用。如int &r=new int;是錯(cuò)誤的。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4374

    瀏覽量

    64401
  • C++
    C++
    +關(guān)注

    關(guān)注

    22

    文章

    2117

    瀏覽量

    74879

原文標(biāo)題:【博文連載】C++中的“引用”

文章出處:【微信號(hào):ChinaAET,微信公眾號(hào):電子技術(shù)應(yīng)用ChinaAET】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    C++避坑指南

    C++是一門古老的語(yǔ)言,但仍然在不間斷更新,不斷引用新特性。但與此同時(shí) C++又甩不掉巨大的歷史包袱,并且 C++的設(shè)計(jì)初衷和理念造成了
    發(fā)表于 09-15 09:04 ?850次閱讀

    如何在C++包含C代碼?

    :32: 未定義對(duì)“CB_Display_GetValues”的引用你有這個(gè)問(wèn)題的解決方案或者你知道如何解決嗎?在 C 包含 C++ 代碼如何工作(相反的方式)?非常感謝,節(jié)日快樂(lè),
    發(fā)表于 01-11 06:42

    c引用和指針的區(qū)別

    is derived-declarator-type-list cv-qualifier-seq pointer to T。 The cv-qualifiers apply to the pointer and not to the object pointer to. 摘自《ANSI C++ Standard》
    發(fā)表于 09-27 15:19 ?1次下載
    <b class='flag-5'>c</b><b class='flag-5'>引用</b>和指針的區(qū)別

    如何從C轉(zhuǎn)向C++ Effective C++ PDF中文版教材免費(fèi)下載

    對(duì)每個(gè)人來(lái)說(shuō),習(xí)慣 C++需要一些時(shí)間,對(duì)于已經(jīng)熟悉C 的程序員來(lái)說(shuō),這個(gè)過(guò)程尤其令人苦惱。因?yàn)?b class='flag-5'>C 是C++的子集,所有的C 的技術(shù)都可以繼
    發(fā)表于 01-10 16:48 ?0次下載

    Visual C++教程之C++的語(yǔ)言資料概述免費(fèi)下載

    本文檔詳細(xì)介紹的是Visual C++教程之C++的語(yǔ)言資料概述免費(fèi)下載主要內(nèi)容包括了:1 從CC++的程序結(jié)構(gòu) ,2 程序書(shū)寫規(guī)范,3 數(shù)據(jù)類型,4 運(yùn)算符和表達(dá)式,5 基本語(yǔ)句
    發(fā)表于 02-15 15:59 ?3次下載
    Visual <b class='flag-5'>C++</b>教程之<b class='flag-5'>C++</b>的語(yǔ)言資料概述免費(fèi)下載

    C++引用的使用場(chǎng)景

    C++引用的使用場(chǎng)景
    的頭像 發(fā)表于 06-29 15:18 ?4340次閱讀
    <b class='flag-5'>C++</b>:<b class='flag-5'>引用</b>的使用場(chǎng)景

    C++的const和引用的討論

    今天給大家分享一下這段時(shí)間學(xué)習(xí)c++的總結(jié)學(xué)習(xí):c++里面的const關(guān)鍵字和引用
    的頭像 發(fā)表于 12-24 15:35 ?1055次閱讀

    C++基礎(chǔ)語(yǔ)法引用、封裝和多態(tài)

    本期是C++基礎(chǔ)語(yǔ)法分享的第六節(jié),今天給大家來(lái)分享一下: (1)引用; (2)宏; (3)成員初始化列表; (4)封裝; (5)繼承; (6)多態(tài); 引用 左值引用 常規(guī)
    的頭像 發(fā)表于 09-12 09:58 ?1496次閱讀

    適合具備 C 語(yǔ)言基礎(chǔ)的 C++ 入門教程(二)

    在上一則教程,通過(guò)與 C 語(yǔ)言相比較引出了 C++ 的相關(guān)特性,其中就包括函數(shù)重載,引用,this 指針,以及在脫離 IDE 編寫 C++
    發(fā)表于 01-25 19:13 ?1次下載
    適合具備 <b class='flag-5'>C</b> 語(yǔ)言基礎(chǔ)的 <b class='flag-5'>C++</b> 入門教程(二)

    c++引用詳細(xì)解說(shuō)1

    C++C語(yǔ)言的繼承,它可進(jìn)行過(guò)程化程序設(shè)計(jì),又可以進(jìn)行以抽象數(shù)據(jù)類型為特點(diǎn)的基于對(duì)象的程序設(shè)計(jì),還可以進(jìn)行以繼承和多態(tài)為特點(diǎn)的面向?qū)ο蟮某绦蛟O(shè)計(jì)。
    的頭像 發(fā)表于 02-15 09:40 ?795次閱讀
    <b class='flag-5'>c++</b><b class='flag-5'>引用</b>詳細(xì)解說(shuō)1

    c++引用詳細(xì)解說(shuō)2

    C++C語(yǔ)言的繼承,它可進(jìn)行過(guò)程化程序設(shè)計(jì),又可以進(jìn)行以抽象數(shù)據(jù)類型為特點(diǎn)的基于對(duì)象的程序設(shè)計(jì),還可以進(jìn)行以繼承和多態(tài)為特點(diǎn)的面向?qū)ο蟮某绦蛟O(shè)計(jì)。
    的頭像 發(fā)表于 02-15 09:43 ?685次閱讀
    <b class='flag-5'>c++</b><b class='flag-5'>引用</b>詳細(xì)解說(shuō)2

    c++引用詳細(xì)解說(shuō)3

    C++C語(yǔ)言的繼承,它可進(jìn)行過(guò)程化程序設(shè)計(jì),又可以進(jìn)行以抽象數(shù)據(jù)類型為特點(diǎn)的基于對(duì)象的程序設(shè)計(jì),還可以進(jìn)行以繼承和多態(tài)為特點(diǎn)的面向?qū)ο蟮某绦蛟O(shè)計(jì)。
    的頭像 發(fā)表于 02-15 09:43 ?748次閱讀
    <b class='flag-5'>c++</b><b class='flag-5'>引用</b>詳細(xì)解說(shuō)3

    c++引用詳細(xì)解說(shuō)4

    C++C語(yǔ)言的繼承,它可進(jìn)行過(guò)程化程序設(shè)計(jì),又可以進(jìn)行以抽象數(shù)據(jù)類型為特點(diǎn)的基于對(duì)象的程序設(shè)計(jì),還可以進(jìn)行以繼承和多態(tài)為特點(diǎn)的面向?qū)ο蟮某绦蛟O(shè)計(jì)。
    的頭像 發(fā)表于 02-15 09:43 ?736次閱讀
    <b class='flag-5'>c++</b><b class='flag-5'>引用</b>詳細(xì)解說(shuō)4

    C++引用和指針

    之前的文章我們已經(jīng)介紹了C++的基本類型如int,bool和double等,除了基本類型C++還有一些更復(fù)雜的數(shù)據(jù)類型復(fù)合類型,所謂的復(fù)合類型就是通過(guò)其他類型定義的類型,本篇文章我們將會(huì)著重介紹
    的頭像 發(fā)表于 03-17 14:00 ?843次閱讀

    C++ std::tie函數(shù)的作用和用法

    C++std::tie函數(shù)的作用就是從元素引用中生成一個(gè)tuple元組,其在頭文件定義
    的頭像 發(fā)表于 07-18 17:28 ?1118次閱讀
    主站蜘蛛池模板: 黄网在线看 | 新版天堂中文资源8在线 | 黄色免费看视频 | 久久午夜影院 | 久久久精品免费观看 | 日本在线一本 | 久久精品国波多野结衣 | 啪啪啦资源站永久 | 免费看片aⅴ免费大片 | 最新黄色地址 | 羞羞答答91麻豆网站入口 | 亚洲一区二区影视 | 免费高清特黄a 大片 | 久热精品视频 | 午夜寂寞视频在线观看 | a级毛片毛片免费很很综合 a级男女性高爱潮高清试 | 午夜黄色网址 | 欧美视频亚洲色图 | 成人综合色站 | 欧美成人午夜视频 | 丁香婷婷六月天 | 性大特级毛片视频 | 日韩精品卡4卡5卡6卡7卡 | 久久影视免费观看网址 | 亚洲综合色婷婷 | 色视频免费国产观看 | 午夜免费剧场 | 一区二区三区视频在线 | 四虎国产精品永久在线播放 | 天天宗合网| 天天天天天干 | 国产午夜免费一区二区三区 | www.人人干| 日本在线不卡一区 | 色拍拍综合网 | 天天操网 | 天天爽天天色 | 欧美黄色录像 | 国产女主播精品大秀系列在线 | 色色色色色色色色色色色 | 97夜夜澡人人爽人人喊一欧美 |