最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++類型兼容規(guī)則詳情

 更新時間:2022年03月11日 09:54:36   作者:機器學習入坑者  
這篇文章主要介紹了C++類型兼容規(guī)則詳情,共有繼承時,任何需要父類對象的地方,都能使用子類對象“替代”,這就是類型兼容規(guī)則,下面一起來了解文章相關內(nèi)容吧

在類的繼承過程中,子類繼承了父類除去構(gòu)造函數(shù)和析構(gòu)函數(shù)外的所有成員,那么父類的功能子類是不是都有呢?

實際上,子類是否含有父類的全部功能,取決于“繼承方式”。在共有(public)繼承的情況下,父類的public成員在子類中是public成員,父類的protected成員在子類中是protected成員。也就是說,此時,父類對外暴露的功能,子類都有。

因此,在共有繼承時,任何需要父類對象的地方,都能使用子類對象“替代”,這就是類型兼容規(guī)則。

其中“替代”包含下面三種情況:

  • 子類對象隱含轉(zhuǎn)換為父類對象;
  • 子類對象用于初始化父類引用;
  • 子類對象地址隱含轉(zhuǎn)換為父類指針;

下面定義的三個函數(shù),分別對應上述三種情況。其中Animal為父類,Duck為子類,Animal和Duck都定義了public類型的eat()函數(shù):

// 子類對象隱含轉(zhuǎn)換為父類對象;
void situationOne(Animal animal) {
?? ?animal.eat();
}?

// 子類對象用于初始化父類引用
void situationTwo(Animal &r) {
?? ?r.eat();
}

// 子類指針隱含轉(zhuǎn)換為父類指針
void situationThree(Animal *p) {
?? ?p->eat();
}

現(xiàn)在,可以使用子類對象作為函數(shù)參數(shù)傳入到上述三個函數(shù)中:

Duck duck;

situationOne(duck);
situationTwo(duck);
situationThree(&duck);

注意:三個函數(shù)中通過父類調(diào)用的eat()函數(shù)永遠是“父類成員函數(shù)eat()”而不是“子類成員函數(shù)eat()”。也就是說,通過“類型兼容規(guī)則”訪問的永遠是父類成員,而不是子類成員。

 到此這篇關于C++類型兼容規(guī)則詳情的文章就介紹到這了,更多相關C++類型兼容內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 詳解C++ 內(nèi)存對齊

    詳解C++ 內(nèi)存對齊

    這篇文章主要介紹了C++ 內(nèi)存對齊的相關資料,幫助大家更好的理解和使用c++編程語言,感興趣的朋友可以了解下
    2021-01-01
  • linux C 打印錯誤信息和標準輸入輸出詳細介紹

    linux C 打印錯誤信息和標準輸入輸出詳細介紹

    這篇文章主要介紹了linux C 打印錯誤信息和標準輸入輸出詳細介紹的相關資料,需要的朋友可以參考下
    2016-12-12
  • Windows網(wǎng)絡編程之winsock實現(xiàn)文件傳輸示例

    Windows網(wǎng)絡編程之winsock實現(xiàn)文件傳輸示例

    這篇文章主要介紹了Windows網(wǎng)絡編程之winsock實現(xiàn)文件傳輸示例,對于學習Windows網(wǎng)絡程序設計來說具有很好的學習借鑒價值,需要的朋友可以參考下
    2014-08-08
  • C++線程中幾類鎖的詳解

    C++線程中幾類鎖的詳解

    這篇文章主要為大家介紹了C++線程中幾類鎖,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-11-11
  • C語言完整特性詳情

    C語言完整特性詳情

    這篇文章主要介紹了C# 10的相關資料方法,感興趣的朋友可以參考下文
    2021-08-08
  • C++實現(xiàn)將數(shù)組中的值反轉(zhuǎn)

    C++實現(xiàn)將數(shù)組中的值反轉(zhuǎn)

    這里給大家分享的事一則C++實現(xiàn)將數(shù)組中的值反轉(zhuǎn)的代碼,取材自《C++程序設計》(梁勇著第三版367頁),有需要的小伙伴可以參考下
    2016-05-05
  • 貪吃蛇游戲C++命令行版實例代碼

    貪吃蛇游戲C++命令行版實例代碼

    這篇文章主要介紹了貪吃蛇游戲C++命令行版實例代碼,包含了常見的循環(huán)語句及相關游戲規(guī)則的判定方法,有助于更好的理解游戲設計原理,需要的朋友可以參考下
    2014-09-09
  • C++ 自定義控件的移植問題

    C++ 自定義控件的移植問題

    這篇文章主要介紹了C++ 自定義控件的移植問題,十分的簡單實用,有需要的小伙伴可以參考下。
    2015-06-06
  • C++實現(xiàn)LeetCode(29.兩數(shù)相除)

    C++實現(xiàn)LeetCode(29.兩數(shù)相除)

    這篇文章主要介紹了C++實現(xiàn)LeetCode(29.兩數(shù)相除),本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C語言實現(xiàn)三子棋程序

    C語言實現(xiàn)三子棋程序

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)三子棋程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03

最新評論

苗栗市| 万山特区| 广饶县| 抚远县| 稷山县| 寻甸| 会宁县| 金川县| 株洲市| 大同县| 水城县| 清原| 合肥市| 沾化县| 灵川县| 关岭| 崇礼县| 富裕县| 绥芬河市| 高淳县| 郓城县| 无锡市| 安徽省| 云霄县| 铜梁县| 梧州市| 阳新县| 林周县| 奎屯市| 石屏县| 高青县| 平谷区| 乌鲁木齐市| 江门市| 海阳市| 平罗县| 肇庆市| 天峻县| 九江市| 林周县| 盖州市|