學習環境搭建1_linux c語言_嵌入式開發工程師-創客學院www.makeru.com.cn
介面描述了類的行為和功能,而不需要完成類的特定實現。
c++ 介面是使用抽象類來實現的,抽象類與資料抽象互不混淆,資料抽象是乙個把實現細節與相關的資料分離開的概念。
如果類中至少有乙個函式被宣告為純虛函式,則這個類就是抽象類。純虛函式是通過在宣告中使用 "= 0" 來指定的,如下所示:
class box ;
設計抽象類(通常稱為 abc)的目的,是為了給其他類提供乙個可以繼承的適當的基類。抽象類不能被用於例項化物件,它只能作為介面使用。如果試圖例項化乙個抽象類的物件,會導致編譯錯誤。
因此,如果乙個 abc 的子類需要被例項化,則必須實現每個虛函式,這也意味著 c++ 支援使用 abc 宣告介面。如果沒有在派生類中重寫純虛函式,就嘗試例項化該類的物件,會導致編譯錯誤。
可用於例項化物件的類被稱為具體類。
請看下面的例項,基類 shape 提供了乙個介面getarea(),在兩個派生類 rectangle 和 ******** 中分別實現了getarea():
例項#include using namespace std; // 基類 class shape void setheight(int h) protected: int width; int height; }; // 派生類 class rectangle: public shape }; class ********: public shape }; int main(void)
當上面的**被編譯和執行時,它會產生下列結果:
total rectangle area: 35
total ******** area: 17
從上面的例項中,我們可以看到乙個抽象類是如何定義乙個介面 getarea(),兩個派生類是如何通過不同的計算面積的演算法來實現這個相同的函式。
物件導向的系統可能會使用乙個抽象基類為所有的外部應用程式提供乙個適當的、通用的、標準化的介面。然後,派生類通過繼承抽象基類,就把所有類似的操作都繼承下來。
外部應用程式提供的功能(即公有函式)在抽象基類中是以純虛函式的形式存在的。這些純虛函式在相應的派生類中被實現。
這個架構也使得新的應用程式可以很容易地被新增到系統中,即使是在系統被定義之後依然可以如此。
C 介面例項化的作用
首先註明,介面是無法是無法實現例項化,但是可以宣告乙個介面引用,指向實現該介面的類。格式如下 介面名稱 物件名稱 new具體實現類名 因為物件導向語言都具有多型性,可以向上轉型,例如某個類實現了ibark介面,假如這個類的名稱是dog,那麼則可以有如下書寫方式 ibark inte ce test ...
介面可以例項化
介面可以例項化 一般物件比如有個具體的類person已定義好,要例項化它,採取的語法是 person objperson new person 但介面 如iconnection 不能這麼做,其不能直接new 自己,如 iconnection objiconnection new iconnectio...
C 介面 經典例項
介面是把隱式公共方法和屬性組合起來,以封裝特定功能的乙個集合。一旦定義了介面,就可以在類中實現它。這樣,類就可以支援介面所指定的所有屬性和成員。介面不能單獨存在 不能進行例項化 因為沒有必要例項化 介面不包括任何實現其成員的 而只定義了成員本身 成員的實現將在實現介面的類中實現。以上是介面的書本定義...