虛函式:
virtual void breather()
cout<<"annimal breather"《從**中可以看出,虛函式有方法體。虛函式主要是c++的多型性,當編譯器編譯的時候,發現breather()是乙個虛函式,這時候c++就會才用遲繫結(late binding)技術。也就是編譯時不確定具體呼叫的函式,而在執行時,依據物件的型別來確定呼叫哪乙個函式,這種能力叫c++的多型性。與之對應的是早期繫結(early binding),多型性通過遲繫結來實現的。總之一句話,在基類的函式中加virtual關鍵字,在派生類中重寫該函式,執行時會根據物件的實際型別來呼叫響應的函式。
純虛函式:
virtual void breather()=0;
沒有方法題,含有純虛函式的類叫做抽象類,不能宣告物件,只能作為基類,
父類 有vitual關鍵字的函式,在之類的中就可以被覆蓋(override),前提,函式簽名一樣。
所謂的隱藏,是指派生類中具有與來積累同名的函式,(不可以參數列是否一樣),從而隱藏了父類的同名函式*****,注意::沒有virtual就是隱藏。。。。。反問積累被隱藏的函式,用 類名::函式名
過載,引數列表不一樣就行了,不包括返回值,發生在同乙個檔案裡
虛函式和純虛函式
除了繼承外,c 的另乙個優良特性是支援多型,即允許將派生類的物件當作基類的物件使用。如果a是基類,b和c是a的派生類,多態函式test的引數是a的指標。那麼test函式可以引用a b c的物件。示例程式如下 class a void test a a class b public a class c...
虛函式 和 純虛函式
簡單的說,介面 就是該類的public函式。由於在類的外部一般只能通過這些公共函式才能訪問乙個類,所以這些函式就稱為類的介面。雖然乙個類也可以存在public成員資料,但是,一般不要編寫這種能夠直接在類的外部訪問的public資料,因為這樣就使資訊隱藏性受到一定的 破壞 當使用乙個基類的指標指向其乙...
純虛函式和虛函式
首先 強調乙個概念 定義乙個函式為虛函式,不代表函式為不被實現的函式。定義他為虛函式是為了允許用基類的指標來呼叫子類的這個函式。定義乙個函式為純虛函式,才代表函式沒有被實現。定義純虛函式是為了實現乙個介面,起到乙個規範的作用,規範繼承這個類的程式設計師必須實現這個函式。1 簡介 假設我們有下面的類層...