日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

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

C語言編程學(xué)習(xí)基地 ? 來源:C語言編程學(xué)習(xí)基地 ? 作者: 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ù)

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

編輯:jq

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

    關(guān)注

    0

    文章

    23

    瀏覽量

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

    關(guān)注

    3

    文章

    4422

    瀏覽量

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

    關(guān)注

    1

    文章

    484

    瀏覽量

    71973

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

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

    關(guān)于車速傳感器磁鐵的知識點

    車速傳感器磁鐵在測量車輛速度中扮演著至關(guān)重要的角色,通過與霍爾效應(yīng)傳感器或磁阻傳感器配合使用,利用磁場變化來生成信號,進而反映車速,今天來介紹下車速傳感器磁鐵的幾個關(guān)鍵知識點。首先,磁鐵材質(zhì)方面
    的頭像 發(fā)表于 04-29 10:40 ?75次閱讀
    關(guān)于車速傳感器磁鐵的<b class='flag-5'>一</b>些<b class='flag-5'>知識點</b>

    示波器小知識點

    示波器的系統(tǒng)帶寬:是指個逐漸升高頻率的正弦輸入信號顯示幅度下降3dB時的頻率。測試信號般是方波,而方波信號由基波及奇次諧波組成。如果用示波器去測個方波,需要注意示波器應(yīng)從頻率上
    的頭像 發(fā)表于 04-16 11:04 ?113次閱讀
    示波器小<b class='flag-5'>知識點</b>

    【黑金云課堂筆記】第三期知識點總結(jié)

    ,對 FPGA 免費直播課的熱情也感染到了黑金云課堂的老師們。接下來我們會再接再厲,把每期直播都做得更扎實 ? 更多精彩課程歡迎關(guān)注我們 黑金云課堂全年免費直播課 ,現(xiàn)在讓我們先來回顧下上周的知識點精華—— ? 數(shù)據(jù)類型 常
    的頭像 發(fā)表于 04-01 16:08 ?209次閱讀
    【黑金云課堂筆記】第三期<b class='flag-5'>知識點</b>總結(jié)

    Linux內(nèi)核伙伴系統(tǒng)內(nèi)存申請函數(shù)詳解:從原理到實戰(zhàn)

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

    帶你徹底搞懂K8s網(wǎng)絡(luò)

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

    詳解網(wǎng)絡(luò)丟包故障排查過程

    干運維這么多年,見過各種各樣的故障,但有些問題真的是讓人抓狂。前段時間遇到的個MTU問題,差點讓我懷疑人生。表面上看是簡單的丟包,實際上折騰了整整兩天才定位到根因。今天就把這個案例完整地記錄下來,順便把MTU相關(guān)知識點系統(tǒng)地
    的頭像 發(fā)表于 01-26 15:21 ?1065次閱讀

    指針與函數(shù)詳解

    。 2、函數(shù)指針函數(shù)指針,本質(zhì)上他是個指針,并不是函數(shù)。在C語言中有些概念是脈相承的,之
    發(fā)表于 01-23 06:02

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

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

    【「Yocto項目實戰(zhàn)教程:高效定制嵌入式Linux系統(tǒng)」閱讀體驗】01初讀體驗

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

    激光焊錫中焊產(chǎn)生的原因和解決方法

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

    詳解開關(guān)電源反饋環(huán)路設(shè)計

    傳遞函數(shù)中的零、極點,最終確定反饋補償網(wǎng)絡(luò)中各元件的參數(shù),以便獲得穩(wěn)定的帶寬適中的閉環(huán)控制系統(tǒng),使DC-DC 、AC-DC變換器具有良好的抗干擾性能。
    的頭像 發(fā)表于 06-05 17:02 ?3758次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>詳解</b>開關(guān)電源反饋環(huán)路設(shè)計

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

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

    什么是運放的短和

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

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

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

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

    開關(guān)電源的各個元器件怎么計算?損耗怎么估算?散熱器的大小怎么計算? 51頁圖文詳解,帶你弄懂! 純分享貼,有需要可以直接下載附件獲取完整資料! (如果內(nèi)容有幫助可以關(guān)注、
    發(fā)表于 05-12 16:20
    海晏县| 正定县| 新安县| 玛曲县| 吴桥县| 梅河口市| 海门市| 金秀| 德阳市| 德清县| 西丰县| 安乡县| 高台县| 桂阳县| 马关县| 且末县| 灌云县| 柘荣县| 沈阳市| 福建省| 类乌齐县| 西藏| 定边县| 佛冈县| 满洲里市| 金坛市| 布拖县| 成安县| 六枝特区| 彭州市| 尼勒克县| 呼图壁县| 盘锦市| 北流市| 岳阳县| 南漳县| 玉树县| 邢台市| 壶关县| 新平| 芮城县|