虛函式的作用
虛函式的作用主要是為了能夠實現多型而設計的。可以讓成員函式操作一般化,用基類的指標指向不同的派生類的物件時, 基類指標呼叫其虛成員函式,則會呼叫其真正指向物件的成員函式, 而不是基類中定義的成員函式(只要派生類改寫了該成員函式)。 若不是虛函式,則不管基類指標指向的哪個派生類物件,呼叫時都 會呼叫基類中定義的那個函式。
注意:虛函式只能借助於指標或者引用來達到多型的效果。
虛函式和純虛函式的區別
1.定義乙個函式為虛函式,不代表函式為不被實現的函式。
定義他為虛函式是為了允許用基類的指標來呼叫子類的這個函式。
2.定義乙個函式為純虛函式,才代表函式沒有被實現。
定義純虛函式是為了實現乙個介面,起到乙個規範的作用,規範繼承這個類的程式設計師必須實現這個函式。
純虛函式是在基類中宣告的虛函式,它在基類中沒有定義,但要求任何派生類都要定義自己的實現方法。在基類中實現純虛函式的方法是在函式原型後加「=0」,例如:virtual void funtion1()=0。
編譯器要求在派生類中必須予以重寫以實現多型性。同時含有純虛函式的類稱為抽象類,它不能生成物件。
• 抽象類只能作為基類來使用,其純虛函式的實現由派生類給出。如果派生類中沒有重新定義純虛函式,而只是繼承基類的純虛函式,則這個派生類仍然還是乙個抽象類。如果派生類中給出了基類純虛函式的實現,則該派生類就不再是抽象類了,它是乙個可以建立物件的具體的類。
• 抽象類是不能定義物件的。
虛函式的作用及其底層實現機制
虛函式 實現類的多型性 關鍵字 虛函式 虛函式的作用 多型性 多型公有繼承 動態聯編 c 中的虛函式的作用主要是實現了多型的機制 基類定義虛函式,子類可以重寫該函式 在派生類中對基類定義的虛函式進行重寫時,需要再派生類中宣告該方法為虛方法。當子類重新定義了父類的虛函式後,當父類的指標指向子類物件的位...
C C 中虛函式詳解及其作用介紹
目錄 虛函式 virtual function 指可以被子類繼承和覆蓋的函式.基類宣告成員函式為虛函式的方法 virtual 型別 函式名 參數列列 注 在類外定義虛函式時,不需再加 virtual.虛函式的特點 通過關聯 binding 我們可以把乙個識別符號和乙個儲存位址聯絡起來,或者把乙個函式...
C 中虛析構函式的作用及其原理分析
c 中的虛析構函式到底什麼時候有用的,什麼作用呢。一.虛析構函式的作用 總的來說虛析構函式是為了避免記憶體洩露,而且是當子類中會有指標成員變數時才會使用得到的。也就說虛析構函式使得在刪除指向子類物件的基類指標時可以呼叫子類的析構函式達到釋放子類中堆記憶體的目的,而防止記憶體洩露的.我們知道,用c 開...