第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
  • 純虛函數(shù):virtual int func() = 0;不需要去實(shí)現(xiàn)函數(shù)的時(shí)候用。 純虛函數(shù)在虛函數(shù)列表中存儲(chǔ)的值就是0,他并沒(méi)有存儲(chǔ)一個(gè)具有實(shí)際意義的指針。

    含有純虛函數(shù)的類(lèi)叫抽象類(lèi)。哪怕只含有一個(gè)純虛函數(shù)也叫抽象類(lèi)。

    抽象類(lèi)不允許實(shí)例化對(duì)象。

    抽象類(lèi)的子類(lèi)也可以是抽象類(lèi)。

    抽象類(lèi)的子類(lèi)只有把抽象類(lèi)當(dāng)中的所有純虛函數(shù)都做了實(shí)現(xiàn),這個(gè)子類(lèi)才可以實(shí)例化對(duì)象。


    查看全部
  • 當(dāng)類(lèi)中沒(méi)有虛函數(shù)的時(shí)候:

    ? ? ? ?我們通過(guò)類(lèi)的對(duì)象訪(fǎng)問(wèn)其數(shù)據(jù)成員,訪(fǎng)問(wèn)其成員函數(shù);前面已經(jīng)知道,實(shí)例化對(duì)象時(shí),只有數(shù)據(jù)成員的大小,這說(shuō)明類(lèi)的成員函數(shù)是統(tǒng)一放在內(nèi)存代碼區(qū)的,并且有自己的類(lèi)名稱(chēng)空間作為限制,只能自己實(shí)例化的對(duì)象訪(fǎng)問(wèn);所以我們通過(guò)對(duì)象訪(fǎng)問(wèn)數(shù)據(jù)成員,是直接在對(duì)象的內(nèi)存塊中偏移得到;而通過(guò)對(duì)象訪(fǎng)問(wèn)成員函數(shù),則是要到代碼區(qū)才能訪(fǎng)問(wèn)到;

    當(dāng)父類(lèi)與子類(lèi)之間有重名函數(shù)時(shí):

    (1)通過(guò)子類(lèi)對(duì)象訪(fǎng)問(wèn)父類(lèi)該重名函數(shù)(于是有了隱藏):

    ? ? ? ? 父類(lèi)與子類(lèi)有重名函數(shù)時(shí),這時(shí)出現(xiàn)了隱藏,即子類(lèi)是繼承了父類(lèi)的該重名函數(shù)的,但是將其隱藏了。通過(guò)子類(lèi)對(duì)象訪(fǎng)問(wèn)該函數(shù)時(shí),訪(fǎng)問(wèn)的是子類(lèi)自己的該函數(shù),如果想要訪(fǎng)問(wèn)父類(lèi)的該函數(shù),則要在函數(shù)前面加上父類(lèi)的名稱(chēng)空間限定;代碼示例如下:父類(lèi)Person和子類(lèi)Worker,都有一個(gè)同名函數(shù)name();通過(guò)子類(lèi)對(duì)象worker調(diào)用父類(lèi)該函數(shù)時(shí),worker.Person::name();

    (2)通過(guò)父類(lèi)指針指向子類(lèi)對(duì)象,并訪(fǎng)問(wèn)子類(lèi)重名函數(shù)(于是有了虛函數(shù)):

    ? ? ? ? 父類(lèi)指針指向子類(lèi)對(duì)象時(shí),父類(lèi)指針只能訪(fǎng)問(wèn)子類(lèi)對(duì)象的數(shù)據(jù)成員(部分,繼承自父類(lèi)的),和訪(fǎng)問(wèn)父類(lèi)在代碼區(qū)的自己的成員函數(shù);此時(shí),如果想要通過(guò)父類(lèi)指針訪(fǎng)問(wèn)到子類(lèi)對(duì)象的成員函數(shù)(即通過(guò)父類(lèi)指針調(diào)用子類(lèi)的析構(gòu)函數(shù)或者普通重名函數(shù)),就要將該重名函數(shù)設(shè)定為虛函數(shù),然后將虛函數(shù)地址放進(jìn)該類(lèi)的虛函數(shù)表中(于是有了覆蓋,即在子類(lèi)虛函數(shù)表中用子類(lèi)虛函數(shù)地址覆蓋掉父類(lèi)虛函數(shù)地址),而對(duì)象又多了個(gè)數(shù)據(jù)成員(虛函數(shù)表指針),且在對(duì)象內(nèi)存塊首位;這樣當(dāng)我們用父類(lèi)指針指向子類(lèi)對(duì)象,且調(diào)用子類(lèi)重名虛函數(shù)時(shí),就要先在虛函數(shù)表中查找,如果找到,就執(zhí)行;即調(diào)用成員函數(shù)時(shí),有虛函數(shù)表先在虛函數(shù)表中查找,然后再在代碼區(qū)查找;

    ? ? ? ? 這里我只解釋了父類(lèi)指針訪(fǎng)問(wèn)子類(lèi)重名函數(shù)的情況,沒(méi)有解釋虛析構(gòu)函數(shù)不重名也能訪(fǎng)問(wèn)的情況。我想可能是析構(gòu)函數(shù)有自己特殊的用法吧,可能每個(gè)類(lèi)的析構(gòu)函數(shù)都是同一個(gè)名字,而在代碼中名字是不同的吧。這里如果有同學(xué)想明白了,希望能不吝賜教;

    (3)通過(guò)子類(lèi)對(duì)象初始化父類(lèi)對(duì)象,通過(guò)父類(lèi)對(duì)象不能訪(fǎng)問(wèn)子類(lèi)重名函數(shù)(虛):

    ? ? ? ? 按照上面的理論,子類(lèi)對(duì)象初始化父類(lèi)對(duì)象后,子類(lèi)對(duì)象的數(shù)據(jù)成員會(huì)覆蓋掉父類(lèi)對(duì)象的數(shù)據(jù)成員,但是這里,父類(lèi)原有的虛函數(shù)表是沒(méi)有被覆蓋掉的,父類(lèi)對(duì)象的虛函數(shù)表指針還是自己的表指針;表指針里的虛函數(shù)地址還是父類(lèi)自己的虛函數(shù)地址,所以此時(shí)通過(guò)父類(lèi)對(duì)象只能訪(fǎng)問(wèn)到子類(lèi)對(duì)象的數(shù)據(jù)成員(繼承自父類(lèi)的),訪(fǎng)問(wèn)自己代碼區(qū)的成員函數(shù)和虛函數(shù)列表中的自己的虛函數(shù),不能訪(fǎng)問(wèn)到子類(lèi)虛函數(shù)列表中的虛函數(shù);


    查看全部
    0 采集 收起 來(lái)源:練習(xí)題

    2020-02-27

  • 對(duì)象的大小

    (1)類(lèi)實(shí)例化對(duì)象時(shí),對(duì)象的大小就是類(lèi)中數(shù)據(jù)成員所占的內(nèi)存大?。〝?shù)據(jù)成員,不包含成員函數(shù));

    (2)若類(lèi)中存在一個(gè)或多個(gè)虛函數(shù)或虛析構(gòu)函數(shù),則會(huì)在實(shí)例對(duì)象的前4個(gè)B內(nèi)存單元存放一個(gè)虛函數(shù)表指針(指針大小為4B);

    注意1:每個(gè)類(lèi)只有一個(gè)虛函數(shù)表,所有該類(lèi)的對(duì)象共用一張?zhí)摵瘮?shù)表。

    注意2:父類(lèi)和子類(lèi)的虛函數(shù)表不同,但虛函數(shù)表中的函數(shù)地址可能相同,指向同一個(gè)虛函數(shù)地址(這種情況父類(lèi)虛函數(shù)未被子類(lèi)的覆蓋, 沒(méi)有形成多態(tài))

    (3)如果類(lèi)中沒(méi)有數(shù)據(jù)成員或虛函數(shù),則對(duì)象大小為1字節(jié),用來(lái)標(biāo)識(shí)對(duì)象的存在。


    查看全部
  • 沒(méi)有數(shù)據(jù)成員的類(lèi),實(shí)例化以后,sizeof后的值是1,原因是C++對(duì)于沒(méi)有數(shù)據(jù)成員的對(duì)象,C++會(huì)用1個(gè)內(nèi)存單元用來(lái)標(biāo)記這個(gè)對(duì)象

    查看全部
  • 對(duì)象的大?。侯?lèi)實(shí)例化的對(duì)象,數(shù)據(jù)成員占據(jù)的內(nèi)存大小,成員函數(shù)不占據(jù)內(nèi)存。

    對(duì)象的地址:實(shí)例化的對(duì)象,所占內(nèi)存的第一個(gè)存儲(chǔ)單元的地址

    對(duì)象成員地址:實(shí)例化對(duì)象有一個(gè)或多個(gè)數(shù)據(jù)成員,每個(gè)數(shù)據(jù)成員都有自己的地址,占一定的內(nèi)存空間(數(shù)據(jù)類(lèi)型不同,地址不同)

    虛函數(shù)表指針:具有虛函數(shù)的類(lèi)實(shí)例化的對(duì)象時(shí),對(duì)象的第一塊內(nèi)存中存儲(chǔ)的就是虛函數(shù)表指針


    查看全部
  • 通過(guò)虛析構(gòu)函數(shù),釋放父類(lèi)指針就能夠釋放子類(lèi)申請(qǐng)的內(nèi)存,有個(gè)理論前提就是:執(zhí)行完子類(lèi)的虛構(gòu)函數(shù)就會(huì)執(zhí)行父類(lèi)的析構(gòu)函數(shù)。因此只要保證能夠執(zhí)行子類(lèi)的虛構(gòu)函數(shù)即可(就相當(dāng)于子類(lèi)的和父類(lèi)的都釋放了。 當(dāng)然,只有在堆內(nèi)申請(qǐng)內(nèi)存才會(huì)出現(xiàn)要釋放內(nèi)存的過(guò)程。)

    父類(lèi)指針指向子類(lèi)的時(shí)候,訪(fǎng)問(wèn)子類(lèi)的虛函數(shù)列表,可以找到子類(lèi)的虛析構(gòu)函數(shù),因此釋放父類(lèi)指針可以執(zhí)行子類(lèi)的虛析構(gòu)函數(shù)。反言之, 如果父類(lèi)和子類(lèi)的不是虛析構(gòu)函數(shù),則析構(gòu)函數(shù)不會(huì)存在與虛函數(shù)列表中,父類(lèi)指針就找不到子類(lèi)的析構(gòu)函數(shù)。



    查看全部
  • 函數(shù)的隱藏:定義了父類(lèi)與子類(lèi),且出現(xiàn)了同名的函數(shù),稱(chēng)為隱藏

    函數(shù)的覆蓋:若在子類(lèi)中未定義同名的虛函數(shù),則子類(lèi)的虛函數(shù)表中寫(xiě)上父類(lèi)虛函數(shù)的入口地址;若在子類(lèi)中定義了同名的虛函數(shù),則在子類(lèi)的虛函數(shù)表中,子類(lèi)虛函數(shù)入口地址覆蓋原來(lái)父類(lèi)的


    查看全部
  • 虛函數(shù):假設(shè)存在、作為基類(lèi)方便不同子類(lèi)派生函數(shù)的存在函數(shù)。其特點(diǎn)在于,虛函數(shù)本身沒(méi)有任何意義,其只是作為一個(gè)象征:我所有的子類(lèi)都有如此一個(gè)函數(shù)存在,至于子類(lèi)的函數(shù)到底如何實(shí)現(xiàn),基類(lèi)并不知曉。

    查看全部
  • 函數(shù)指針的實(shí)質(zhì)是指向這段函數(shù)代碼的開(kāi)頭位置

    查看全部
  • virtual在函數(shù)中的使用限制:

    ·普通函數(shù)不能是虛函數(shù)(編譯錯(cuò)誤)

    · 靜態(tài)成員函數(shù)不能是虛函數(shù)(編譯錯(cuò)誤)

    ·內(nèi)聯(lián)函數(shù)不能是虛函數(shù)(可編譯,編譯器忽略inline關(guān)鍵字是函數(shù)變?yōu)榧兇馓摵瘮?shù))

    ·構(gòu)造函數(shù)不能是虛函數(shù)(編譯錯(cuò)誤)


    查看全部
  • 子類(lèi)的構(gòu)造與析構(gòu)原理--深入闡述虛析構(gòu)函數(shù)的重要性


    https://blog.csdn.net/bobbypollo/article/details/79888526

    查看全部
  • 多態(tài)分為兩種 靜態(tài)多態(tài)和動(dòng)態(tài)多態(tài)? 靜態(tài)指的就是函數(shù)重載(是在一個(gè)函數(shù)或者一個(gè)類(lèi)中? )? ;而動(dòng)態(tài)多態(tài)就是 指的多個(gè)類(lèi)之間的多態(tài)??

    查看全部
    0 采集 收起 來(lái)源:練習(xí)題

    2020-02-26

  • 使用父類(lèi)指針指向子類(lèi)對(duì)象時(shí),調(diào)用子類(lèi)完全相同的函數(shù)時(shí)候 會(huì)執(zhí)行父類(lèi)函數(shù),需要在父類(lèi)加virtual關(guān)鍵字使父類(lèi)函數(shù)成為虛函數(shù),才能調(diào)用子類(lèi)自己的同名函數(shù)

    查看全部
  • 靜態(tài)多態(tài)(早綁定):成員函數(shù)同名,但參數(shù)數(shù)目不同時(shí),調(diào)用成員函數(shù)使用的參數(shù)個(gè)數(shù)決定了啟用不同的成員函數(shù)。 /*函數(shù)編譯階段就已經(jīng)確定用哪種行為*/

    動(dòng)態(tài)多態(tài)(晚綁定):以封裝和繼承為基礎(chǔ),當(dāng)父類(lèi)指針指向子類(lèi)類(lèi)型時(shí),要用virtual去修飾子類(lèi)中已經(jīng)重定義的成員函數(shù)(虛函數(shù)),否則使用的是父類(lèi)的定義的成員函數(shù);子類(lèi)中的同名成員函數(shù)virtual可加可不加,系統(tǒng)默認(rèn)補(bǔ)全。

    ”父類(lèi)指針指向子類(lèi)對(duì)象,通過(guò)父類(lèi)指針只能尋址到從父類(lèi)繼承到的成員函數(shù)與數(shù)據(jù)成員,子類(lèi)擴(kuò)展的將會(huì)被截?cái)唷5?,如果將父?lèi)中同名函數(shù)設(shè)置為虛函數(shù),創(chuàng)建子類(lèi)對(duì)象時(shí)將會(huì)創(chuàng)建子類(lèi)自有的【虛函數(shù)表】,虛函數(shù)表指向的成員函數(shù)將覆蓋父類(lèi)中的同名函數(shù)。“


    查看全部
    1 采集 收起 來(lái)源:[C++]虛函數(shù)

    2020-02-26

  • 對(duì)不同對(duì)象下達(dá)相同指令,但是做的不同的操作

    查看全部
    0 采集 收起 來(lái)源:[C++]虛函數(shù)

    2020-02-26

舉報(bào)

0/150
提交
取消
課程須知
本課程是C++初級(jí)課程 1、熟練掌握C++語(yǔ)言基礎(chǔ)語(yǔ)法
老師告訴你能學(xué)到什么?
1、虛函數(shù)、虛析構(gòu)函數(shù)、純虛函數(shù) 2、抽象類(lèi)和接口類(lèi) 3、運(yùn)行時(shí)類(lèi)別異常 4、異常處理

微信掃碼,參與3人拼團(tuán)

微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

友情提示:

您好,此課程屬于遷移課程,您已購(gòu)買(mǎi)該課程,無(wú)需重復(fù)購(gòu)買(mǎi),感謝您對(duì)慕課網(wǎng)的支持!