女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

C++:重載、重定義和重寫的概念和區分

如意 ? 來源:CSDN ? 作者:cherrydreamsover ? 2020-06-29 11:33 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

C++中我們經常會遇見“重載、重定義、重寫”的概念,三個概念名字很像,很容易混淆,今天我們對三者進行一個區分。

1.重載(overload

函數重載是函數的一種特殊情況,其特點是:

(1)在同一作用域(全局作用域、局部作用域、類作用域);

(2)函數名相同;

(3)形參列表(參數個數、參數類型、參數順序)必須不同;

(4)返回值可以不同;

(5)virtual關鍵字可有可無。

舉例:

下面,我們看一看這種情況能否構成重載?

根據上面我們所說的重載的特點,看起來這兩個函數好像還可以構成重載,但實際上是不可以的,原因是:僅僅返回值類型不同,不能構成重載!

2.重寫(覆蓋)

覆蓋是C++多態的實現基礎,指派生類重新定義基類的虛函數。其特點是:

(1)在不同的作用域中(分別在基類和派生類中);

(2)函數名相同;

(3)參數相同;

(4)返回值類型相同(協變例外:基類中的虛函數返回Base*,派生類中返回Derived*);

(5)基類函數必須有virtual關鍵字,派生類可有可無(因為派生類繼承基類后就會有該關鍵字),但基類不能有static關鍵字;

(6)訪問修飾符可以不同(例如基類virtual 是 private 的,派生類中重寫改寫為 public,protected 也是可以的)。

舉例:

3.重定義(隱藏)

在繼承體系中,子類和父類中有同名成員,子類成員將屏蔽父類對成員的直接訪問。(在子類成員中,可以使用基類: :基類成員訪問)。重定義的特點如下:

(1)在不同的作用域中(分別在基類和派生類中);

(2)函數名相同;

(3)返回值可以不同;

(4)在基類和派生類中,只要不構成重寫就是重定義(即:參數相同時:基類沒有關鍵字virtual,基類的函數被隱藏;參數不同時:無論基類有無關鍵字virtual,基類函數都被隱藏)。

舉例:

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

    關注

    3

    文章

    4380

    瀏覽量

    64848
  • C++
    C++
    +關注

    關注

    22

    文章

    2119

    瀏覽量

    75284
  • 重載
    +關注

    關注

    0

    文章

    8

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    關于C++中的函數重載機制

    函數重載C++的新增機制,是在同一個作用域中能聲明定義多個同名字的函數.(我們知道函數的名字是函數代碼塊的起始地址,這個首地址能夠將函數的控制權轉移給這個代碼塊的區域).在定義多個同
    發表于 10-01 17:18

    函數重載隱藏覆蓋的區別

    `1.1 覆蓋隱藏重載重載,隱藏(定義),覆蓋(重寫)—這幾個名詞看著好像很像,不過其實一樣都不一樣!!1.1.1 重載:(1)
    發表于 05-11 09:33

    關于C++虛函數是否必須重寫

    說法1:網上說如果不是純虛函數,子類可以不重寫父類的虛函數。說法2:C++primer書上說的。所有的虛函數必須提供定義。此處的“定義”我理解為“
    發表于 05-13 11:46

    嵌入式-C++函數的重載

    的函數名定義,從而形成重載,方便使用,某種層度上函數的重載也是C++三大特性之一的多態的一種形式 三、函數重載的應用場景 #include
    發表于 06-28 13:54

    C++語言基礎講解視頻常量的定義和使用

    C++語言基礎講解視頻常量的定義和使用,喜歡的朋友可以下載來學習。
    發表于 01-14 15:30 ?4次下載

    漫談java中重載重寫的不同

    多態性的一種表現。 (2) Java的方法重載,就是在類中可以創建多個方法,它們具有相同的名字,但具有不同的參數和不同的定義。 調用方法時通過傳遞給它們的不同參數個數和參數類型來決定具體使用哪個方法, 這就是多態性。 (3) 重載
    發表于 09-26 17:56 ?0次下載

    C++程序設計教程之運算符重載的詳細資料說明

    本文檔詳細介紹的是C++程序設計教程之運算符重載的詳細資料說明主要內容包括了:1. 什么是運算符重載,2. 運算符重載的方法,3. 重載運算
    發表于 03-14 16:04 ?4次下載
    <b class='flag-5'>C++</b>程序設計教程之運算符<b class='flag-5'>重載</b>的詳細資料說明

    干貨:三大實例講解三種C++運算符重載

    本章節主要講解是運算符重載。運算符重載是賦予運算符能操作自定義類型的功能。C++運算符重載主要分為以下三類:
    的頭像 發表于 09-30 16:59 ?3711次閱讀
    干貨:三大實例講解三種<b class='flag-5'>C++</b>運算符<b class='flag-5'>重載</b>

    C++之操作重載符學習的總結(二)

    復數的概念可以通過自定義類實現;復數中的運算操作可以通過操作符重載實現;賦值操作符只能通過成員函數實現;操作符重載的本質為函數定義
    的頭像 發表于 12-24 16:26 ?783次閱讀

    C++之操作符重載學習的總結

    操作符重載c++的強大特性之一;操作符重載的本質是通過函數擴展操作符的功能;operator 關鍵字是實現操作符重載的關鍵。
    的頭像 發表于 12-24 16:36 ?882次閱讀

    C++重載函數學習總結

    函數重載c++c的一個重要升級;函數重載通過參數列表區分不同的同名函數;extern關鍵字能夠實現c
    的頭像 發表于 12-24 17:10 ?1040次閱讀

    C++中不一樣的重載是什么

    這里想分享C++中一個不一樣的重載,即const重載
    的頭像 發表于 02-21 14:02 ?1076次閱讀
    <b class='flag-5'>C++</b>中不一樣的<b class='flag-5'>重載</b>是什么

    C++基礎知識之函數1

    函數是 C++ 中的一個重要概念,它可以讓我們將一段代碼封裝起來,然后在需要的時候調用它。C++ 中的函數有以下幾個特點: * 函數可以有參數和返回值。 * 函數可以被其他函數調用。 * 函數可以被
    的頭像 發表于 04-03 10:34 ?835次閱讀

    Python 重載重寫概念

    ,隨后不久我便意識到犯下了一個錯誤。 我們先來看看重載重寫概念重載重載的條件如下: 1.一個類里面 2.方法名字相同 3.參數不
    的頭像 發表于 11-03 15:13 ?911次閱讀
    Python <b class='flag-5'>重載</b>與<b class='flag-5'>重寫</b>的<b class='flag-5'>概念</b>

    java中的重載重寫的區別

    Java中的重載(Overload)和重寫(Override)是兩個重要的面向對象編程概念,盡管它們在使用和功能上有所不同,但它們都與方法和多態性相關。本文將全面介紹重載
    的頭像 發表于 11-17 17:13 ?1003次閱讀