chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

一文詳解虛函數(shù)及其相關(guān)知識點

C語言編程學習基地 ? 來源:C語言編程學習基地 ? 作者: C語言編程 ? 2021-10-13 10:14 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本期是C++基礎(chǔ)語法分享的第七節(jié),今天給大家來分享一下:

(1)虛析構(gòu)函數(shù);

(2)純虛函數(shù);

(3)虛函數(shù)、純虛函數(shù);

(4)虛函數(shù)指針、虛函數(shù)表;

(5)虛繼承;

(6)虛繼承、虛函數(shù);

(7)模板類、成員模板、虛函數(shù);

(8)抽象類、接口類、聚合類;

虛析構(gòu)函數(shù)

虛析構(gòu)函數(shù)是為了解決基類的指針指向派生類對象,并用基類的指針刪除派生類對象。

虛析構(gòu)函數(shù)使用

class Shape{public: Shape(); // 構(gòu)造函數(shù)不能是虛函數(shù) virtual double calcArea(); virtual ~Shape(); // 虛析構(gòu)函數(shù)};class Circle : public Shape // 圓形類{public: virtual double calcArea(); 。。。};int main(){ Shape * shape1 = new Circle(4.0); shape1-》calcArea(); delete shape1; // 因為Shape有虛析構(gòu)函數(shù),所以delete釋放內(nèi)存時,先調(diào)用子類析構(gòu)函數(shù),再調(diào)用基類析構(gòu)函數(shù),防止內(nèi)存泄漏。 shape1 = NULL; return 0;}

純虛函數(shù)

純虛函數(shù)是一種特殊的虛函數(shù),在基類中不能對虛函數(shù)給出有意義的實現(xiàn),而把它聲明為純虛函數(shù),它的實現(xiàn)留給該基類的派生類去做。

virtual int A() = 0;

虛函數(shù)、純虛函數(shù)

類里如果聲明了虛函數(shù),這個函數(shù)是實現(xiàn)的,哪怕是空實現(xiàn),它的作用就是為了能讓這個函數(shù)在它的子類里面可以被覆蓋(override),這樣的話,編譯器就可以使用后期綁定來達到多態(tài)了。純虛函數(shù)只是一個接口,是個函數(shù)的聲明而已,它要留到子類里去實現(xiàn)。

虛函數(shù)在子類里面可以不重寫;但純虛函數(shù)必須在子類實現(xiàn)才可以實例化子類。

虛函數(shù)的類用于 “實作繼承”,繼承接口的同時也繼承了父類的實現(xiàn)。純虛函數(shù)關(guān)注的是接口的統(tǒng)一性,實現(xiàn)由子類完成。

帶純虛函數(shù)的類叫抽象類,這種類不能直接生成對象,而只有被繼承,并重寫其虛函數(shù)后,才能使用。抽象類被繼承后,子類可以繼續(xù)是抽象類,也可以是普通類。

虛基類是虛繼承中的基類,暫不做詳細說明。

虛函數(shù)指針、虛函數(shù)表

虛函數(shù)指針:在含有虛函數(shù)類的對象中,指向虛函數(shù)表,在運行時確定。

虛函數(shù)表:在程序只讀數(shù)據(jù)段,存放虛函數(shù)指針,如果派生類實現(xiàn)了基類的某個虛函數(shù),則在虛表中覆蓋原本基類的那個虛函數(shù)指針,在編譯時根據(jù)類的聲明創(chuàng)建。

虛繼承

虛繼承用于解決多繼承條件下的菱形繼承問題(浪費存儲空間、存在二義性)。

底層實現(xiàn)原理與編譯器相關(guān),一般通過虛基類指針和虛基類表實現(xiàn),每個虛繼承的子類都有一個虛基類指針(占用一個指針的存儲空間,4字節(jié))和虛基類表(不占用類對象的存儲空間)(需要強調(diào)的是,虛基類依舊會在子類里面存在拷貝,只是僅僅最多存在一份而已,并不是不在子類里面了);當虛繼承的子類被當做父類繼承時,虛基類指針也會被繼承。

實際上,vbptr 指的是虛基類表指針(virtual base table pointer),該指針指向了一個虛基類表(virtual table),虛表中記錄了虛基類與本類的偏移地址;通過偏移地址,這樣就找到了虛基類成員,而虛繼承也不用像普通多繼承那樣維持著公共基類(虛基類)的兩份同樣的拷貝,節(jié)省了存儲空間。

虛繼承、虛函數(shù)

相同之處:都利用了虛指針(均占用類的存儲空間)和虛表(均不占用類的存儲空間)

不同之處:

虛繼承

(1)虛基類依舊存在繼承類中,只占用存儲空間

(2)虛基類表存儲的是虛基類相對直接繼承類的偏移

虛函數(shù)

(1)虛函數(shù)不占用存儲空間

(2)虛函數(shù)表存儲的是虛函數(shù)地址

模板類、成員模板、虛函數(shù)

模板類中可以使用虛函數(shù)

一個類(無論是普通類還是類模板)的成員模板(本身是模板的成員函數(shù))不能是虛函數(shù)

抽象類、接口類、聚合類

抽象類:含有純虛函數(shù)的類

接口類:僅含有純虛函數(shù)的抽象類

聚合類:用戶可以直接訪問其成員,并且具有特殊的初始化語法形式。滿足如下特點:

(1)所有成員都是 public

(2)沒有定義任何構(gòu)造函數(shù)

(3)沒有類內(nèi)初始化

(4)沒有基類,也沒有 virtual 函數(shù)

今天的分享就到這里了,大家要好好學C++喲~

編輯:jq

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

    關(guān)注

    0

    文章

    23

    瀏覽量

    12518
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4381

    瀏覽量

    64890
  • 指針
    +關(guān)注

    關(guān)注

    1

    文章

    484

    瀏覽量

    71197

原文標題:C++基礎(chǔ)語法梳理:虛函數(shù)及其相關(guān)知識點

文章出處:【微信號:cyuyanxuexi,微信公眾號:C語言編程學習基地】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

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

    【「# 運算放大器參數(shù)解析與LTspice應(yīng)用仿真」閱讀體驗】+全書概覽與第章閱讀分享

    先來詳細閱讀下第章,分享下相關(guān)內(nèi)容。 第章主要介紹運放的基礎(chǔ)知識,學過模電的都很容易理解,可能教材上學過的忘記了, 這里可以作為摘出來的重點溫故知新復習下。全文沒有廢話,都是娓娓道
    發(fā)表于 05-22 23:18

    C51單片機及C語言知識點必備秘籍

    單片機關(guān)鍵知識點覽: 系列 1:單片機簡敘 2:單片機引腳介紹 3:單片機存儲器結(jié)構(gòu) 4:第個單片機小程序 5:單片機延時程序分析 6:單片機并行口結(jié)構(gòu) 7:單片機
    發(fā)表于 05-15 14:00

    電機選型計算公式與知識點匯總

    純分享帖,需要者可點擊附件獲取完整資料~~~*附件:電機選型計算公式與知識點匯總.pdf 【免責聲明】內(nèi)容轉(zhuǎn)自今日電機,因轉(zhuǎn)載眾多,無法確認真正原始作者,故僅標明轉(zhuǎn)載來源。版權(quán)歸原出處所有,純分享帖,侵權(quán)請聯(lián)系刪除內(nèi)容以保證您的權(quán)益。
    發(fā)表于 04-29 16:10

    電氣工程師必知必會的100個電?知識點分享

    電??程師也都是從電?學徒??步?步積累成長起來的。積跬步?千?,匯細流成江海!朋友們,現(xiàn)在讓我們??個捷徑,花半個?時的時間來積累100個必知必會的電?知識點吧!
    的頭像 發(fā)表于 03-14 11:05 ?977次閱讀

    華邦電子安全閃存關(guān)鍵知識點

    黑客攻擊?高溫考驗?駕駛安全?通通沒在怕的!1月15日,華邦電子舉辦了“安全閃存強化車用電子安全性”為主題的線上研討會。為了讓沒能參加這場線上研討會的邦友們也可以清晰 Get 安全閃存關(guān)鍵知識點,邦
    的頭像 發(fā)表于 02-12 18:15 ?754次閱讀

    Docker-鏡像的分層-busybox鏡像制作

    docker hub里面查看busybox的Dockerfile, 知識點4:bootfs 和 rootfs? 知識點5:為什么Docker鏡像要采用這種分層結(jié)構(gòu)? 如果多個容器共享份基礎(chǔ)鏡像,當某個
    的頭像 發(fā)表于 01-15 10:44 ?607次閱讀
    Docker-鏡像的分層-busybox鏡像制作

    Aigtek功率放大器應(yīng)用:電感線圈的知識點分享

    電磁驅(qū)動是功率放大器的大基礎(chǔ)應(yīng)用領(lǐng)域,其中我們最常見的就是用功放來驅(qū)動電感線圈,那么關(guān)于電感線圈的這10大知識點你都知道嗎?今天Aigtek安泰電子來給大家介紹下電感線圈的基礎(chǔ)知識
    的頭像 發(fā)表于 01-07 15:43 ?578次閱讀
    Aigtek功率放大器應(yīng)用:電感線圈的<b class='flag-5'>知識點</b>分享

    芯片良率相關(guān)知識點詳解

    芯片良率(或成品率)是指在芯片制造過程中,從片晶圓上生產(chǎn)出的芯片中,能正常工作的比例,即合格芯片數(shù)量與總芯片數(shù)量的比率。良率的高低反映了生產(chǎn)工藝的成熟度、設(shè)備的精度和穩(wěn)定性、材料質(zhì)量以及設(shè)計合理性
    的頭像 發(fā)表于 12-30 10:42 ?3282次閱讀
    芯片良率<b class='flag-5'>相關(guān)</b><b class='flag-5'>知識點</b><b class='flag-5'>詳解</b>

    詳解信號的回流路徑

    最近在看JT大佬出的本高速PCB設(shè)計書籍,看到回流路徑這里,讓我想到最近兩個群里都提到關(guān)于這個知識點的問題。書籍很好,但是也會有些疑問,帶著這些疑問我也查找了相關(guān)資料,我想著盡可能
    的頭像 發(fā)表于 12-25 10:17 ?2465次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>詳解</b>信號的回流路徑

    后悔沒有早點看到:天線設(shè)計中的知識點!

    Cat.1 bis R13架構(gòu),天線架構(gòu)精簡為單天線架構(gòu),去掉了分集接收天線,因此只需要根天線。 ? 知識點: Cat.1 bis相對于Cat.1的區(qū)別是,后者為兩根天線(根主天線,
    的頭像 發(fā)表于 12-24 17:11 ?1117次閱讀
    后悔沒有早點看到:天線設(shè)計中的<b class='flag-5'>知識點</b>!

    單片機中斷相關(guān)知識點

    ,中斷可以讓單片機在多個任務(wù)之間切換,為每個任務(wù)分配定的處理時間,從而提高資源的利用效率。1.2行業(yè)現(xiàn)狀1.2.1應(yīng)用現(xiàn)狀(1)嵌入式系統(tǒng):中斷機制是嵌入式系統(tǒng)中提升系統(tǒng)效率與響應(yīng)能力的關(guān)鍵技術(shù)。它
    發(fā)表于 11-30 09:49

    常用SQL函數(shù)及其用法

    的 SQL 函數(shù)及其用法: 、聚合函數(shù)(Aggregate Functions) 聚合函數(shù)
    的頭像 發(fā)表于 11-19 10:18 ?1445次閱讀

    接口測試理論、疑問收錄與擴展相關(guān)知識點

    本文章使用王者榮耀游戲接口、企業(yè)微信接口的展示結(jié)合理論知識,講解什么是接口測試、接口測試理論、疑問收錄與擴展相關(guān)知識點知識學院,快來起看
    的頭像 發(fā)表于 11-15 09:12 ?744次閱讀
    接口測試理論、疑問收錄與擴展<b class='flag-5'>相關(guān)</b><b class='flag-5'>知識點</b>

    智慧公交是什么?帶你詳解智慧公交的解決方案!

    智慧公交是什么?帶你詳解智慧公交的解決方案!
    的頭像 發(fā)表于 11-05 12:26 ?971次閱讀
    智慧公交是什么?<b class='flag-5'>一</b><b class='flag-5'>文</b>帶你<b class='flag-5'>詳解</b>智慧公交的解決方案!

    CPK為什么要大于1.33?詳解CPK計算

    原文標題:CPK為什么要大于1.33?詳解CPK計算
    的頭像 發(fā)表于 11-01 11:08 ?1168次閱讀