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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

虚函数与纯虚函数

發布時間:2024/4/14 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 虚函数与纯虚函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

c++

虛函數

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

    當程序發現虛函數名前的關鍵字virtual后,會自動將其作為動態聯編處理,即在程序運行時動態地選擇合適的成員函數。虛函數是C++多態的一種表現。動態聯編規定,只能通過指向基類的指針或基類對象的引用來調用虛函數,其格式:
  • 指向基類的指針變量名->虛函數名(實參表)
  • 基類對象的引用名. 虛函數名(實參表)
  • 使用虛函數,我們可以靈活的進行動態綁定,當然是以一定的開銷為代價。如果父類的函數(方法)根本沒有必要或者無法實現,完全要依賴子類去實現的話,可以把此函數(方法)設為virtual 函數名=0?,例如:virtual?void?fun()?=?0我們把這樣的函數(方法)稱為純虛函數如果一個類包含了純虛函數,稱此類為抽象類。

    總結:如果一個子類想要重寫父類的方法,那么父類的這個成員方法必須是virtual的,也就是這個方法必須是虛函數。

    java

    在java中,所有方法默認就是虛擬的,只要方法不是聲明為final類型的,那么肯定就是虛函數,不用為方法顯示聲明為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"。所以我們發現,在java中,子類可以重寫(override)父類的方法,而父類沒有聲明virtual。

    ?

    ?本文轉自xwdreamer博客園博客,原文鏈接:http://www.cnblogs.com/xwdreamer/archive/2012/04/12/2444221.html,如需轉載請自行聯系原作者

    總結

    以上是生活随笔為你收集整理的虚函数与纯虚函数的全部內容,希望文章能夠幫你解決所遇到的問題。

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