虛函式:在子類繼承父類的時候,如果子類和父類有相同的函式(即函式的覆蓋),當子類例項化物件的時候,子物件呼叫此函式,會預設呼叫父類的此函式。
這時,在父類的此函式前面加上:virtual,就可以呼叫子類此函式。
純虛函式:在父類的某個函式-》virtual void fn()=0;
這個類就變成了抽象類,不能例項化物件,只有它的子類實現了這個虛函式才可以例項化物件。
例子:qthread類中有虛函式run,如果直接使用qthread子類的start時,會執行這個run【裡面是空的】;
當使用子類繼承qthread時,如果想要run自己的函式,就過載run,在裡面寫需要的**,這樣就實現了多型
虛函式和純虛函式
除了繼承外,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 簡介 假設我們有下面的類層...