亚洲免费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ì)象
        色欲欲www成人网站| 色视频不卡一区二区三区| 日韩人妻大奶子生活片| 乱子伦av无码中文字幕| 日本专区一区二区三区| 亚洲日本VA午夜在线电影| 色se在线中文字幕视频| 久久av一区二区三区黑人| 亚洲国产精品国自产拍性色| 狠狠躁日日躁夜夜躁2022麻豆| 欧美性猛交xxxx三人| 久久亚洲国产成人精品性色 | 中文字幕久久熟女蜜桃 | 国产一区白浆在线观看| 人妻少妇无码精品视频区| 狠狠色噜噜狠狠狠888米奇视频| 六月丁香婷婷色狠狠久久| 欧美另类在线视频| 国产乱人伦真实精品视频| 三级黄色片一区二区三区| 少妇高潮呻吟求饶视频网站| 蜜桃传媒网站在线观看| 无码人妻一区二区三区免费看| 免费a级毛片无码| 破了亲妺妺的处免费视频国产| 亚洲区精选网址| 人妻少妇偷人精品久久人妻| 日韩精品中文一区二区三区在线 | 亚洲字幕中文综合久久| 十四以下岁毛片带血a级| 成人做爰视频www| 国产一国产一级新婚之夜| 大胸美女吃奶爽死视频| 中文字幕一区二区在线| 国产真实一区二区三区| 97人伦影院a级毛片| 精品国模一区二区三区| 久久99热精品免费观看欧美| 美女和男人一起插插插| 米奇欧美777四色影视在线| 亚洲伊人一本大道中文字幕|