介面與虛函式的區別

2021-06-09 19:56:18 字數 703 閱讀 6694

介面只能宣告,不能實現,虛函式可以。

介面:對外提供可以訪問的函式就叫介面,介面不能有實現,只能宣告。虛函式不需要強制被重寫,其本身也包含實現的部分。

抽象類就是指定了派生類必須實現的函式(純虛函式),不然編譯不會過的。

虛函式的限制:

1.虛函式僅適用於有繼承關係的類物件,   所以只有類的成員函式才能說明為虛函式.  

2.靜態成員函式不能是虛函式.  

3.內聯函式不能是虛函式.  

4建構函式不能是虛函式.  

5.析構函式可以是虛函式.

介面可以有靜態成員、巢狀型別、抽象、虛擬成員、屬性和事件。實現介面的任何類都必須提供介面中所宣告的抽象成員的定義。介面可以要求任何實現類必須實現乙個或多個其他介面。

對介面有以下限制:  

介面可以用任何可訪問性來宣告,但介面成員必須全都具有公共可訪問性。  

不能向成員或介面自身附加安全性許可權。  

介面可以定義類建構函式,但不能定義例項建構函式。  

每種語言都必須為需要成員的介面對映乙個實現提供規則,因為不只乙個介面可以用相同的簽名宣告成員,且這些成員可以有單獨的實現。

介面可以由類和結構來實現。為了指示類或結構實現了某介面,在該類或結構的基類列表中應該包含該介面的識別符號。如果乙個類或結構實現某介面,則它還隱式實現該介面的所有基介面。即使在類或結構的基類列表中沒有顯式列出所有基介面,也是這樣。

介面與虛函式的區別

介面只能宣告,不能實現,虛函式可以。介面 對外提供可以訪問的函式就叫介面,介面不能有實現,只能宣告。虛函式不需要強制被重寫,其本身也包含實現的部分。抽象類就是指定了派生類必須實現的函式 純虛函式 不然編譯不會過的。虛函式的限制 1.虛函式僅適用於有繼承關係的類物件,所以只有類的成員函式才能說明為虛函...

虛函式與純虛函式的區別

首先 強調乙個概念 定義乙個函式為虛函式,不代表函式為不被實現的函式。定義他為虛函式是為了允許用基類的指標來呼叫子類的這個函式。定義乙個函式為純虛函式,才代表函式沒有被實現。定義純虛函式是為了實現乙個介面,起到乙個規範的作用,規範繼承這個類的程式設計師必須實現這個函式。1 簡介 假設我們有下面的類層...

虛函式與純虛函式的區別

一 虛函式 1.定義 虛函式是乙個類的成員函式。2.定義格式如下 virtual 返回型別 函式名 參數列 關鍵字virtual指明該成員函式為虛函式。virtual僅用於類定義中,如虛函式在類外定義,不可加virtual 3.當某乙個類的乙個類成員函式被定義為虛函式,則由該類派生出來的所有派生類中...