亚洲免费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ì)象
        99久久99久久久精品久久| 全黄性性激高免费视频| 视频在线国产一区二区| 人妻无码一区二区不卡无码av| 久久欧美与黑人双交男男 | 久久水蜜桃亚洲av无码精品麻豆| 99久久人妻无码精品系列蜜桃| 一区二区三区国产视频在线观看| 久久在一区二区三区视频免费观看| 蜜桃av抽搐高潮一区二区| 久久香蕉免费国产天天看| 久久高潮少妇视频免费| 久久丝袜熟女av一区二区| 久久久久成人精品无码| 国产欧美日韩综合在线一区二区| 扒开非洲女人大荫蒂视频| 视频一区二区三区国产| 中国杭州少妇xxxx做受| 亚洲精品久久久久中文字幕| 国外亚洲成av人片在线观看| 国产99页| 国产黄色一区二区三区,| 粉嫩国产av一区二区三区| 亚洲精品一区二区国产精华液| 精品国产一区二区三区av 性色| 日韩av一区二区毛片| 亚洲av少妇一区二区在线观看 | 亚洲中文字幕久久精品无码喷水| 国产夫妻av| 日韩人妻大奶子生活片| 国产69久久精品成人看| 亚洲中文久久精品无码ww16| 亚洲女同同性少妇熟女| 中文字幕免费人成在线网站 | 国产精品.xx视频.xxtv| 亚洲色图视频在线播放| 91久久综合精品久久久综合| 少妇人妻陈艳和黑人教练| 一本大道久久a久久综合| 精品国产亚洲av高清日韩专区| 国产专区一线二线三线码|