-4
我對C++相當陌生,並且很好奇,什麼時候使用虛函數而不是僅僅使用覆蓋,反之亦然C++?什麼時候在C++中使用虛函數而不是重寫是最有利的,反之亦然C++
我對C++相當陌生,並且很好奇,什麼時候使用虛函數而不是僅僅使用覆蓋,反之亦然C++?什麼時候在C++中使用虛函數而不是重寫是最有利的,反之亦然C++
當您在基類中將函數定義爲虛函數時,即使您正在使用對基類的引用,也是向編譯器指示您希望派生類中的函數能夠運行。這會導致運行時決定。
如果基類函數不是虛擬的,那麼運行哪個函數取決於引用。這是編譯時決定。
虛擬函數用於在面向對象設計中實現多態。多數情況下,如果在派生類中存在相同名稱的函數時,未能將基類中的函數標記爲虛擬函數,那就是一個錯誤。這就是大多數編譯器將這標記爲警告的原因。
如果你真的想讓自己的腦袋爆炸,請閱讀虛擬基類。 – jbruni 2013-03-27 23:15:31