今天講講c++中,虛函式與純虛函式的用法和區別。
而純虛函式是一種特殊的函式,它的作用是在基類中不給出有意義的實現,而把說明成純虛函式,它的實現留給該基類的派生類去做。包含純虛函式的類就是抽象類,抽象類不能被例項化,但是可以定義指向抽象類資料的指標變數,當派生類稱為具體類後,就可以用這種指標指向派生類的物件,然後通過該指標呼叫虛函式,實現多型操作。
虛函式和純虛函式的書寫格式類似於下面:
class student
;
虛函式可以被直接呼叫,也可以備子類過載以後以多型的形式呼叫,而純虛函式必須在子類中實現該函式才可以使用,因為純虛函式在基類只有宣告而沒有定義。
虛函式和純虛函式的定義中不能有static 識別符號,原因很簡單,被static修飾的函式在編譯時候要求前期繫結,然而虛函式確實動態繫結,而且被兩者修飾的函式生命週期也不一樣。
如果乙個類中含有純虛函式,那麼任何試圖對該類進行例項化的語句都將導致錯誤的產生,因為抽象基類不能被直接呼叫,必須唄子類整合過載以後,根據要求呼叫其子類的方法。
class studenta
;class studentb
;// ca,cb類的實現
...void main()
本文簡要介紹了虛函式和純虛函式,並對它們做了簡要區分。簡單來說,虛函式是為了多重繼承的二義性問題而提出的解決方案,純虛函式的提出是使一些類的例項化更加符合邏輯,便於實現多型。
C 虛函式與純虛函式
純虛函式定義如下 virtual functionname parameter 0 類的乙個成員定位虛函式的實際意義在於讓c 知道該函式並無意義,它的作用只是為了讓派生類進行函式過載保留位置。純虛函式的定義方法就是在類的虛函式後面加上 0 標記,類中一旦出現了純虛函式的定義,那麼此類為抽象類。例項 ...
C 虛函式與純虛函式
首先 強調乙個概念 定義乙個函式為虛函式,不代表函式為不被實現的函式。定義他為虛函式是為了允許用基類的指標來呼叫子類的這個函式。定義乙個函式為純虛函式,才代表函式沒有被實現。定義純虛函式是為了實現乙個介面,起到乙個規範的作用,規範繼承這個類的程式設計師必須實現這個函式。1 簡介 假設我們有下面的類層...
C 虛函式與純虛函式
最近在準備校招,做了一些筆試題,發現以前的基礎知識確實有一些遺失,好腦袋不如爛筆頭,所以決定隨筆記下一些基礎知識,以備後用。今天就先寫一寫虛函式與純虛函式。虛函式是類中被virtual關鍵字修飾的成員函式,為了實現類的多型性,即將介面與實現分離,需要注意的是虛函式必須實現,如果不實現,編譯器會報錯,...