国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

一文詳解虛函數及其相關知識點

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

掃碼添加小助手

加入工程師交流群

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

(1)虛析構函數;

(2)純虛函數;

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

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

(5)虛繼承;

(6)虛繼承、虛函數;

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

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

虛析構函數

虛析構函數是為了解決基類的指針指向派生類對象,并用基類的指針刪除派生類對象。

虛析構函數使用

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

純虛函數

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

virtual int A() = 0;

虛函數、純虛函數

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

虛函數在子類里面可以不重寫;但純虛函數必須在子類實現才可以實例化子類。

虛函數的類用于 “實作繼承”,繼承接口的同時也繼承了父類的實現。純虛函數關注的是接口的統一性,實現由子類完成。

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

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

虛函數指針、虛函數表

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

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

虛繼承

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

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

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

虛繼承、虛函數

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

不同之處:

虛繼承

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

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

虛函數

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

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

模板類、成員模板、虛函數

模板類中可以使用虛函數

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

抽象類、接口類、聚合類

抽象類:含有純虛函數的類

接口類:僅含有純虛函數的抽象類

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

(1)所有成員都是 public

(2)沒有定義任何構造函數

(3)沒有類內初始化

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

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

編輯:jq

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

    關注

    0

    文章

    23

    瀏覽量

    12717
  • 函數
    +關注

    關注

    3

    文章

    4417

    瀏覽量

    67502
  • 指針
    +關注

    關注

    1

    文章

    484

    瀏覽量

    71843

原文標題:C++基礎語法梳理:虛函數及其相關知識點

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Linux內核伙伴系統內存申請函數詳解:從原理到實戰

    在 Linux 內核中,內存管理是整個系統穩定運行的基石,而伙伴系統(Buddy System) 作為內核物理內存分配的核心機制,更是驅動開發、內核模塊開發的必備知識點。它通過 "2 的冪
    的頭像 發表于 02-10 16:58 ?3630次閱讀
    Linux內核伙伴系統內存申請<b class='flag-5'>函數</b><b class='flag-5'>詳解</b>:從原理到實戰

    帶你徹底搞懂K8s網絡

    說實話,K8s 網絡是我見過最讓新手頭疼的知識點,沒有之。記得我剛接觸 K8s 那會兒,看著流量在 Pod、Service、Node 之間穿梭,完全是臉懵逼。后來踩了無數坑,熬了無數夜,總算把這套網絡模型摸透了。今天這篇文章
    的頭像 發表于 02-06 10:15 ?432次閱讀

    跨阻放大器的斷如何分析以及電流的流向?

    理想電流源直接接在運放兩端,信號源兩端是有電壓的,并引入負反饋,續短斷仍然成立,那電流豈不是從gnd到gnd,如果能明白這一點,我想應該明白了反饋和實際運放和理想運放的差異。 有兩個問題請教: 1
    發表于 09-02 22:40

    【「Yocto項目實戰教程:高效定制嵌入式Linux系統」閱讀體驗】01初讀體驗

    已閱讀部分 由于知識點屬于循序漸進,目前花了幾天時間讀到了第4章, 第章到第二章,主要講yocto相關的背景知識,主要講解linux系統以及yocto
    發表于 06-30 21:49

    激光焊錫中焊產生的原因和解決方法

    激光焊錫是發展的非常成熟的種焊接技術,但是在些參數控制不好的情況下,依然會產生些焊接問題,比如說焊的問題。松盛光電來給大家介紹下激
    的頭像 發表于 06-25 09:41 ?1609次閱讀

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

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

    什么是運放的短和

    在設計運放電路的時候我們經常會接觸到兩個詞,短和斷,今天就來和大家分享下什么是運放的虛短和斷。我們設運放的同相端電壓為up,電流為ip,反相端電壓是un,電流為in。在說短和
    的頭像 發表于 05-16 19:33 ?2003次閱讀
    什么是運放的<b class='flag-5'>虛</b>短和<b class='flag-5'>虛</b>斷

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

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

    【必看】開關電源中每個元器件的計算+51頁圖文詳解

    開關電源的各個元器件怎么計算?損耗怎么估算?散熱器的大小怎么計算? 51頁圖文詳解帶你弄懂! 純分享貼,有需要可以直接下載附件獲取完整資料! (如果內容有幫助可以關注、
    發表于 05-12 16:20

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

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

    模擬電路入門100個知識點

    電源之間必須加入個電阻。 5、電子技術分為模擬電子技術和數字電子技術兩大部分,其中研究在平滑、連續變化的電壓或電流信號下工作的電子電路及其技術,稱為模擬電子技術。 6、PN結反向偏置時,PN結的內
    發表于 04-25 15:51

    詳解錫膏工藝中的焊現象

    在錫膏工藝中,焊(Cold Solder Joint)是種常見的焊接缺陷,表現為焊點表面看似連接,但實際存在電氣接觸不良或機械強度不足的問題。焊可能導致產品功能失效、可靠性下降甚至短路風險。以下從成因、表現、影響、檢測及預
    的頭像 發表于 04-25 09:09 ?2371次閱讀
    <b class='flag-5'>詳解</b>錫膏工藝中的<b class='flag-5'>虛</b>焊現象

    嵌入式硬件雜談:推挽、開漏、高阻態、上拉電阻

    對于嵌入式硬件這個龐大的知識體系而言,太多離散的知識點很容易疏漏,因此對于這些容易忘記甚至不明白的知識點做成個梳理,供大家參考以及學習,本文主要針對推挽、開漏、高阻態、上拉電阻這些
    的頭像 發表于 04-17 19:31 ?2144次閱讀
    嵌入式硬件雜談:推挽、開漏、高阻態、上拉電阻

    詳解RTOS中的Hook函數

    Hook函數是RTOS中的個關鍵特性,通過該函數,用戶可以增強對任務管理的控制,定義系統行為。
    的頭像 發表于 03-24 16:14 ?1077次閱讀

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

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