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

虛函數(shù)與純虛函數(shù)(C++與Java虛函數(shù)的區(qū)別)的深入分析

 更新時間:2013年06月04日 11:12:03   作者:  
本篇文章是對虛函數(shù)與純虛函數(shù)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下

c++
虛函數(shù)
1.定義:在某基類中聲明為 virtual 并在一個或多個派生類中被重新定 義的成員函數(shù) [1]
2.語法:virtual 函數(shù)返回類型 函數(shù)名(參數(shù)表) { 函數(shù)體 }
3.用途:實現(xiàn)多態(tài)性,通過指向派生類的基類指針,訪問派生類中同名覆蓋成員函數(shù),也就是允許子類
override父類同名方法。
虛函數(shù)的作用是實現(xiàn)動態(tài)聯(lián)編,也就是在程序的運行階段動態(tài)地選擇合適的成員函數(shù),在定義了虛函數(shù)后,可以在基類的派生類中對虛函數(shù)重新定義,在派生類中重新定義的函數(shù)應(yīng)與虛函數(shù)具有相同的形參個數(shù)和形參類型(也就是完全相同的方法,不能只是函數(shù)名相同。)。以實現(xiàn)統(tǒng)一的接口,不同的定義過程。如果在派生類中沒有對虛函數(shù)重新定義,則它繼承其基類的虛函數(shù)。

當(dāng)程序發(fā)現(xiàn)虛函數(shù)名前的關(guān)鍵字virtual后,會自動將其作為動態(tài)聯(lián)編處理,即在程序運行時動態(tài)地選擇合適的成員函數(shù)。虛函數(shù)是C++多態(tài)的一種表現(xiàn)。動態(tài)聯(lián)編規(guī)定,只能通過指向基類的指針或基類對象的引用來調(diào)用虛函數(shù),其格式:
1.指向基類的指針變量名->虛函數(shù)名(實參表)
2.基類對象的引用名. 虛函數(shù)名(實參表)
使用虛函數(shù),我們可以靈活的進(jìn)行動態(tài)綁定,當(dāng)然是以一定的開銷為代價。如果父類的函數(shù)(方法)根本沒有必要或者無法實現(xiàn),完全要依賴子類去實現(xiàn)的話,可以把此函數(shù)(方法)設(shè)為virtual 函數(shù)名=0 ,例如:virtual void fun() = 0,我們把這樣的函數(shù)(方法)稱為純虛函數(shù)。如果一個類包含了純虛函數(shù),稱此類為抽象類。
總結(jié):如果一個子類想要重寫父類的方法,那么父類的這個成員方法必須是virtual的,也就是這個方法必須是虛函數(shù)。

java
在java中,所有方法默認(rèn)就是虛擬的,只要方法不是聲明為final類型的,那么肯定就是虛函數(shù),不用為方法顯示聲明為virtual。在<core java2 :volum I>中提到:"In Java, you do not need to declare a method as virtual. Dynamic binding is the default behavior. If you do not want a method to be virtual, you tag it as final"。所以我們發(fā)現(xiàn),在java中,子類可以重寫(override)父類的方法,而父類沒有聲明virtual。

相關(guān)文章

  • 使用C語言實現(xiàn)珠璣妙算Mastermind小游戲

    使用C語言實現(xiàn)珠璣妙算Mastermind小游戲

    這篇文章主要介紹了使用C語言實現(xiàn)珠璣妙算Mastermind小游戲,這是一款益智類多人游戲游戲,非常有趣,需要的朋友可以參考下
    2023-03-03
  • C++ 先對數(shù)組排序,在進(jìn)行折半查找

    C++ 先對數(shù)組排序,在進(jìn)行折半查找

    以下小編就為大家介紹兩種實現(xiàn)方法。第一種方法是,選擇排序法+循環(huán)折半查找法。第二種方法是,冒泡排序法+遞歸折半查找法。需要的朋友可以過來參考下,希望對大家有所幫助
    2013-10-10
  • C++使用函數(shù)的一些高級操作指南

    C++使用函數(shù)的一些高級操作指南

    C++中函數(shù)調(diào)用的方法與C語言并無區(qū)別,依舊是在調(diào)用方函數(shù)中執(zhí)行函數(shù)調(diào)用語句來實現(xiàn)函數(shù)調(diào)用,下面這篇文章主要給大家介紹了關(guān)于C++使用函數(shù)的一些高級操作,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • Qt編寫秒表功能

    Qt編寫秒表功能

    這篇文章主要為大家詳細(xì)介紹了Qt編寫秒表功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • 淺談MFC 改變控件大小和位置

    淺談MFC 改變控件大小和位置

    在用VC開發(fā)應(yīng)用程序時,經(jīng)常會要做一些可以改變大小的對話框,而這個時候就要求對話框上的控件會隨著對話框大小的改變而改變自己的位置和大小。下面我們就來探討下在MFC中如何改變控件大小和位置
    2015-06-06
  • Qt線程QThread開啟和安全退出的實現(xiàn)

    Qt線程QThread開啟和安全退出的實現(xiàn)

    本文主要介紹了Qt線程QThread開啟和安全退出的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • C語言實現(xiàn)簡易撲克牌游戲

    C語言實現(xiàn)簡易撲克牌游戲

    這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)簡易撲克牌游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • C++判斷一個點是否在圓內(nèi)的方法

    C++判斷一個點是否在圓內(nèi)的方法

    這篇文章主要為大家詳細(xì)介紹了C++判斷一個點是否在圓內(nèi)的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • C++實現(xiàn)自頂向下的歸并排序算法

    C++實現(xiàn)自頂向下的歸并排序算法

    這篇文章主要介紹了C++實現(xiàn)自頂向下的歸并排序算法,結(jié)合實例詳細(xì)分析了自頂向下的歸并排序算法的原理與具體實現(xiàn)步驟,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-12-12
  • C++求斐波那契數(shù)的實例代碼

    C++求斐波那契數(shù)的實例代碼

    這篇文章介紹了C++求斐波那契數(shù)的實例代碼,有需要的朋友可以參考一下
    2013-10-10

最新評論

安多县| 梁山县| 罗平县| 丰都县| SHOW| 罗田县| 山阳县| 云安县| 迭部县| 甘谷县| 漠河县| 亳州市| 宁陵县| 水城县| 康定县| 双峰县| 大冶市| 小金县| 宜宾县| 望城县| 舟山市| 二连浩特市| 阜城县| 枣强县| 南华县| 郴州市| 宁波市| 鄂托克旗| 于都县| 新昌县| 枣强县| 南溪县| 河曲县| 凉山| 平江县| 固始县| 台中市| 含山县| 保山市| 安达市| 宝兴县|