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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

c 结构体在声明时赋值_C/C++编程笔记:C++入门知识,C++多态性和虚函数解析

發布時間:2023/12/2 c/c++ 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c 结构体在声明时赋值_C/C++编程笔记:C++入门知识,C++多态性和虚函数解析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本篇要學習的內容和知識結構概覽

多態性

編譯時的多態性稱為靜態聯編. 當調用重載函數時, 在編譯期就確定下來調用哪個函數.

運行時的多態性稱為動態聯編. 在運行時才能確定調用哪個函數, 由虛函數來支持.

靜態聯編中的賦值兼容性及名字支配規律

派生一個類的原因并非總是為了添加新的成員或成員函數, 有時是為了重新定義基類的成員函數。

在派生類有同名函數的情況下

Point * pPoint; // 聲明的基類指針只能指向基類

Circle * pCircle // 聲明的派生類指針只能指向派生類

如果派生類沒有基類的同名函數, 派生類的指針才根據繼承原則調用基類的函數

虛函數

一旦定義了虛函數, 該基類的派生類中的同名函數也自動成為虛函數.

虛函數的定義

用關鍵字virtual來聲明一個虛函數, 虛函數只能是類中的一個成員函數, 不能是靜態成員.

像這樣:

虛函數實現多態性的條件

關鍵字virtual告訴編譯器調用虛函數進行動態聯編.

使用虛函數不一定產生多態性, 也不一定使用動態聯編.

在調用中對虛函數使用成員名限定, 可以強制編譯器對該函數使用靜態聯編.

產生運行多態性, 也就是動態聯編有3個前提

(1)類之間的繼承關系滿足賦值兼容性規則

(2)改寫了同名虛函數

(3)根據賦值兼容性規則使用指針(或引用)

像這樣:

純虛函數與抽象類

在基類中不給虛函數一個有意義的定義, 可以說明為純虛函數, 將定義留給派生類去做

像這樣:

抽象類:包含有純虛函數的類稱為抽象類. 一個抽象類至少有一個純虛函數, 一個抽象類只能作為基類來派生新類, 不能說明抽象類的對象.

注意

空虛函數定義 virtual void area() {}

純虛函數定義 virtual void area() = 0;

純虛函數的派生類仍是抽象類. 如果派生類中給出了基類所有純虛函數的實現, 則該派生類不再是抽象類

類族

如果通過同一個基類派生一系列的類, 則將這些類總稱為類族.

像這樣:

多重繼承與虛函數

多重繼承可以被視為多個單一繼承的組合。

總結

C++有兩種多態性, 一種是編譯時多態性, 也叫靜態聯編; 另一種是運行時多態性, 也叫動態聯編. 這大大提高了我們解決問題的豐富性. 可能也是C++長久不衰的魅力所在吧! 我會繼續深入學習C++, 繼續挖掘語言的本質!


自學C/C++編程難度很大,不妨和一些志同道合的小伙伴一起學習成長!

C語言C++編程學習交流圈子,關注+私信【C/C++編程】微信公眾號:C語言編程學習基地

有一些源碼和資料分享,歡迎轉行也學習編程的伙伴,和大家一起交流成長會比自己琢磨更快哦!

總結

以上是生活随笔為你收集整理的c 结构体在声明时赋值_C/C++编程笔记:C++入门知识,C++多态性和虚函数解析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。