亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        C++中隱式this指針的研究

        2014-04-29 22:35:16張永超
        電腦知識(shí)與技術(shù) 2014年20期
        關(guān)鍵詞:對(duì)象

        張永超

        摘要: this指針是由系統(tǒng)自動(dòng)生成的,隱含于每一個(gè)類的成員函數(shù)中的特殊指針,該指針指向正在對(duì)某個(gè)成員函數(shù)操作的對(duì)象。該文通過(guò)實(shí)例及其匯編代碼詳細(xì)地分析了this指針的特點(diǎn)和它的使用方法,從而進(jìn)一步的理解C++中的對(duì)象和其在內(nèi)存中的分配情況。

        關(guān)鍵詞:this指針;對(duì)象;成員函數(shù)

        中圖分類號(hào):TP313 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)20-4738-02

        The Research of Implicit This Pointer in C++

        ZHANG Yong-chao

        (Dept.of Computer,Jilin institute of Chemical Technology,Jilin 132022,China)

        Abstract: this pointer is a special pointer that hidden in every class member function automatically generated by system. It points to the object of operating to a member function.the article analyses characteristics of this pointer and its application method by instances and their assembly code, so as to understanding of objects in C++ and its distribution in memory.

        Key words:this pointer;object; member function

        1 this指針的引入

        類是對(duì)一組具有相同或者相似性質(zhì)對(duì)象的抽象描述,類的本質(zhì)是定義了一種對(duì)象類型,它完整的描述了該類型的所有對(duì)象的屬性和服務(wù)。C++語(yǔ)言中,一般把屬性稱為數(shù)據(jù),服務(wù)稱為函數(shù)。從程序設(shè)計(jì)語(yǔ)言的角度講,類好比是一種程序員自己定義的數(shù)據(jù)類型,類可以用來(lái)聲明對(duì)象,一個(gè)對(duì)象是一個(gè)類的實(shí)例,類只是邏輯上的抽象,它并不能在物理上存在,只有創(chuàng)建了類的對(duì)象之后,在內(nèi)存中才有一個(gè)類的物理表示。當(dāng)定義了一個(gè)類的若干對(duì)象后,每個(gè)對(duì)象都有屬于自己的數(shù)據(jù)成員,但成員函數(shù)代碼卻合用一份。成員函數(shù)如何辨別數(shù)據(jù)成員是哪個(gè)對(duì)象的呢?例如,我們定義一個(gè)三角形類Triangle,再分別定義2個(gè)Triangle類的對(duì)象t1,t2。假如有t1. area(),應(yīng)該使用對(duì)象t1中的bottom和height,計(jì)算出三角形t1的面積,假如有t2. area(),需要利用對(duì)象t2中的bottom和height,算出三角形t2的面積,問(wèn)題是對(duì)象t1和t2調(diào)用同一個(gè)函數(shù)area()時(shí),編譯系統(tǒng)如何做到分別使用t1或t2對(duì)象中的bottom和height計(jì)算出各自的面積呢?答案就是在C++的類的成員函數(shù)中隱式包含著一個(gè)指向當(dāng)前對(duì)象的指針,這個(gè)指針被稱為this指針。

        2 this指針的應(yīng)用

        this指針是指向本類對(duì)象的指針,它的值是當(dāng)前正在調(diào)用成員函數(shù)的對(duì)象的起始地址。例如,在執(zhí)行t1. area();語(yǔ)句時(shí),編譯系統(tǒng)就把第一個(gè)三角形對(duì)象t1的起始地址傳給this指針,這樣,在計(jì)算面積的成員函數(shù)area()引用數(shù)據(jù)成員時(shí),就會(huì)取this指向的對(duì)象t1中的數(shù)據(jù)。area()通過(guò)1/2*(bottom*height)計(jì)算t1的面積時(shí),其實(shí)是執(zhí)行語(yǔ)句:1/2*(this→ bottom)*(this→ height),而此刻this指向的是第一個(gè)三角形t1,因此也可以理解為:1/2*(t1. bottom)*(t1.height),所以計(jì)算的面積為三角形t1的面積。同樣如果有t2. area(),當(dāng)前對(duì)象就換成了t2,編譯器就把第二個(gè)三角形對(duì)象t2的地址賦給this指針,從而計(jì)算出t2的面積??梢?jiàn),this指針是作為隱含的參數(shù)被傳遞給類的成員函數(shù)的。程序中成員函數(shù)area()的定義為:float Triangle::area(){return 1/2*(bottom*height);}C++把它處理為float Triangle::area (Triangle *this){return 1/2*(this→ bottom)*(this→ height);} 在Triangle類的成員函數(shù)area()的形參表列中隱含著一個(gè)this指針,當(dāng)this=&t1,area被調(diào)用時(shí),編譯器先將對(duì)象t1的地址傳給形參this指針,再根據(jù)this當(dāng)前所指的對(duì)象去引用該對(duì)象中的數(shù)據(jù)成員。下面我通過(guò)一個(gè)簡(jiǎn)單的例子來(lái)對(duì)this指針作進(jìn)一步地分析:

        class A

        {public:

        A(int a,int b)

        { x=a;//等價(jià)于this→x=a;

        y=b;//等價(jià)于this→y=b

        cout<<"Construct is called.this="<

        猜你喜歡
        對(duì)象
        神秘來(lái)電
        睿士(2023年2期)2023-03-02 02:01:09
        涉稅刑事訴訟中的舉證責(zé)任——以納稅人舉證責(zé)任為考察對(duì)象
        曬曬全國(guó)優(yōu)秀縣委書記擬推薦對(duì)象
        判斷電壓表測(cè)量對(duì)象有妙招
        攻略對(duì)象的心思好難猜
        意林(2018年3期)2018-03-02 15:17:24
        復(fù)雜高階對(duì)象的預(yù)測(cè)PI(D)控制
        基于熵的快速掃描法的FNEA初始對(duì)象的生成方法
        區(qū)間對(duì)象族的可鎮(zhèn)定性分析
        《陷遼記》中遼世宗祭奠對(duì)象考辨
        試論統(tǒng)一戰(zhàn)線學(xué)的研究對(duì)象
        精品国产一品二品三品| 亚洲男同志网站| 麻豆成人在线视频| 中文字幕偷拍亚洲九色| 国产一区二区三区的区| 无码国产精品久久一区免费| 精品久久久久久777米琪桃花| 中文字幕日产人妻久久| 久久99免费精品国产| 日韩大片高清播放器大全| 丰满熟女人妻中文字幕免费| 国产亚洲精品综合一区| 国产精品女丝袜白丝袜美腿| 亚洲欧美日韩综合一区二区| 中文字幕熟妇人妻在线视频| 国产chinese在线视频| 亚洲av熟女少妇一区二区三区| 大ji巴好深好爽又大又粗视频| 亚洲一区av无码少妇电影| 中文字幕大乳少妇| 中文字幕在线乱码av| 无码人妻一区二区三区免费视频| 精品久久久无码中文字幕| 最新永久免费AV网站| 国产成人高清在线观看视频| 东京热人妻无码一区二区av| 91网站在线看| 东京热日本道免费高清| 激情内射亚洲一区二区三区| 亚洲av片不卡无码久久| 久久午夜无码鲁丝片直播午夜精品 | 无遮挡粉嫩小泬| 国产av一区二区亚洲精品| 欧洲熟妇色xxxx欧美老妇多毛 | 在线免费观看蜜桃视频| 国产av无码专区亚洲av毛网站| 99久久免费国产精品2017| 在线观看播放免费视频| 男人扒开女人双腿猛进视频| 亚洲av色先锋资源电影网站| 亚洲va精品va国产va|