九 虛函式與普通函式區別

2021-10-02 08:47:34 字數 469 閱讀 8897

主要是為了多型。正常情況下,父類無法呼叫子類的成員函式,但是一旦子類的函式是虛函式,那麼父類就可以呼叫該函式。案例如下:

parent *p =

newchildren()

;//呼叫 parent 類中的 method() 方法

p->

method()

;//呼叫 children 類中的 virtualmethod() 方法

p->

virtualmethod()

;

主要在申明上有所區別:

protected

:/**

* q_decl_override:這個巨集表示修飾的函式是對父類虛函式的過載

*/void

paintevent

(qpaintevent *event) q_decl_override;

虛函式 與 純虛函式 區別

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

虛函式 純虛函式 普通函式 虛析構函式

虛函式 純虛函式 普通函式 虛析構函式 其他 靜態成員函式實現隱藏,當前檔案可見,出了這個檔案就不可見了,所以多個檔案可以定義相同的名字。出了作用域之後不銷毀,程式結束才銷毀。靜態成員函式不屬於物件,它與任何物件都是無關的,因此靜態成員函式沒有this指標。也就是說 非靜態成員函式有this指標,而...

static函式與普通函式區別

全域性變數 外部變數 的說明之前再冠以static 就構成了靜態的全域性變數。全域性變數本身就是靜態儲存方式,靜態全域性變數當然也是靜態儲存方 式。這兩者在儲存方式上並無不同。這兩者的區別雖在於非靜態全域性變數的作用域是整個源程式,當乙個源程式由多個原始檔組成時,非靜態 的全域性變數在各個原始檔中都...