日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

【C++学习笔记三】C++多态、抽象(接口)

發(fā)布時間:2023/11/30 c/c++ 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【C++学习笔记三】C++多态、抽象(接口) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

當(dāng)類之間存在多種層次結(jié)構(gòu),并且類之間通過繼承關(guān)聯(lián)時就會用到多態(tài)。

虛函數(shù)在子類中的覆蓋版本和該函數(shù)在基類中的原始版本必須有相同的函數(shù)簽名、函數(shù)名、形參名、常屬性。如果返回值為非類類型,則必須相同,如果是類類型A的指針或者引用,允許子類的覆蓋版本返回A子類的的指針或者引用。

C++多態(tài)意味著調(diào)用成員函數(shù)時會根據(jù)函數(shù)的對象的類型來執(zhí)行不同的函數(shù)。

使用多態(tài)以后就可以通過基類的指針來指向不同的派生類來實現(xiàn)函數(shù)的多態(tài)。

使用方式為在基類需要實現(xiàn)多態(tài)的函數(shù)的修飾符中加入virtual。如果沒有virtual我們使用基類的指針只能訪問到基類的方法。
想要了解更多關(guān)于基類指針指向派生類的問題可以看我的另一篇文章:傳送門

使用virtual修飾的函數(shù)稱為虛函數(shù),不同于一般函數(shù)的靜態(tài)綁定,虛函數(shù)使用的時動態(tài)鏈接(后期綁定)

如果我們并不想在基類中實現(xiàn)虛函數(shù)(可能因為不會用到之類的原因),可以將虛函數(shù)聲明為純虛函數(shù)(接口),格式如下:

class A {public://virtual void func(){}virtual void func() = 0;//==0告訴編譯器,函數(shù)沒有主體,這是一個純虛函數(shù) };

包含純虛函數(shù)的類叫做抽象類,**抽象類不能被實例化,但可以定義指針。**虛函數(shù)還是需要實現(xiàn)的,如果不想寫可以寫成{}

當(dāng)用基類指針指向派生類對象在動態(tài)分配堆上內(nèi)存的時候,析構(gòu)函數(shù)必須是虛函數(shù)!!!

友元函數(shù)不是成員函數(shù),因此不能虛擬。

父類的虛函數(shù)或純虛函數(shù)在子類中仍然是虛函數(shù),有時我們不希望父類的某個函數(shù)在子類中被重寫,在C++11后的版本可以使用final(放在函數(shù)聲明之后,函數(shù)體之前)來避免被重寫,如果不希望一個類被繼承也可以用final關(guān)鍵字(放在類聲明之后類體之前)

總結(jié)

以上是生活随笔為你收集整理的【C++学习笔记三】C++多态、抽象(接口)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。