1) 虛函式是動態繫結的,也就是說,使用虛函式的指標和引用能夠正確找到實際類的對應函式,而不是執行定義類的函式。這是虛函式的基本功能,就不再解釋了。
2) 建構函式不能是虛函式
。而且,
在建構函式中呼叫虛函式,實際執行的是父類的對應函式
,因為自己還沒有構造好, 多型是被disable的。
3) 析構函式可以是虛函式
,而且,在乙個複雜類結構中,這往往是必須的。
4) 將乙個函式定義為純虛函式,實際上是將這個類定義為抽象類,不能例項化物件。
5) 純虛函式通常沒有定義體,但也完全可以擁有
。6) 析構函式可以是純虛的,但
純虛析構函式必須有定義體
,因為析構函式的呼叫是在子類中隱含的。
7) 非純的虛函式必須有定義體,不然是乙個錯誤。
8) 派生類的override虛函式定義必須和父類完全一致。
除了乙個特例,如果父類中返回值是乙個指標或引用,子類override時可以返回這個指標(或引用)的派生
。例如,在上面的例子中,在base中定義了 virtual base* clone(); 在derived中可以定義為 virtual derived* clone()。可以看到,這種放鬆對於clone模式是非常有用的。
C 虛函式實現多型,常見問題總結
1.使用virtual時,只在成員函式的宣告中新增virtual,在成員函式的實現中不要加virtual,示例如下 father.h class father father.cpp int father val 2.如果在子類中重寫虛函式,建議加上virtual,和override,方便可讀和排錯!...
常見問題 朗動常見問題
常見問題一 方向盤變沉 檢查胎壓是否正常,輪胎是否過度磨損。助力幫浦不工作,前輪氣壓低。冬天的話,冷車在冬天助力油比較稠,方向會重一點。檢查轉向助力油。1 應該是是助力系統有問題或則助力潤滑油有問題。2 如果你在駕車時感覺方向盤變緊,汽車偏向一側,需要檢查輪胎,或進行車輪平衡 定位。在這些問題剛剛發...
使用gets函式常見問題
c語言面試經常會考如下一道題,有錯誤 include int main gets string printf 輸入的字串是 s n string return 0 這段c程式可能有問題,問題就在於函式gets 的使用。gets從標準輸入裝置讀字串函式,可以無限讀取,不會判斷上限,以回車結束讀取。所以...