看板 C_and_CPP 關於我們 聯絡資訊
如題, virtual函義是什麼? 我查奇摩知識或google都還是看不太懂= =" 我只知類別用到繼承時, 子類別和父類別一樣,要宣告成virtual void(); -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.14.206
firejox:c沒有virtual阿... 02/07 17:38
wawi2:是c++吧XD virtual用在父、子類別有一個同名的member func. 02/07 17:46
wawi2:詳細情形還是翻書 比較容易理解 板上應該有神人可以提例子 02/07 17:47
wawi2:不過大量使用virtual 會使記憶體使用量上升 要注意~~ 02/07 17:48
james732:#1BK8p46C 以前寫的 02/07 17:55
jakevin:推一下 james那篇 執行過後會比較了解精隨所在 02/07 18:00
james732:板上應該有更好的文章,不過我一時找不到...XD 02/07 18:00
h9602b:你的父,子類別是is a A的關係,當父類別的成員函數子類別繼 02/07 18:01
h9602b:承時,如果實作上要做修改,要把成員函數宣告成virtual 02/07 18:02
h9602b:反之不用 我映像中是這樣,不知有沒有錯 02/07 18:03
jakevin:要把父類別的函式宣告成virtual (幫補正) 02/07 18:04
jakevin:      ^成員 02/07 18:05
james732:多型的意義可以看這篇 #1Ar_jTzE 02/07 18:07
jakevin:james大 多型那篇 衍生類別也需要加嗎? 02/07 18:29
diabloevagto:W大,為何virtual會造成記憶體增加? 02/07 19:26
diabloevagto:我習慣在super跟sub class都會加上virtual,這樣清楚 02/07 19:28
james732:virtual function tables會造成時間跟空間的浪費 02/07 20:14
diabloevagto:這我倒是沒有想過,這是因為virtual實作的原因? 02/07 20:28
Favonia:實作沒問題的話,空間不會浪費多少啦... 02/07 20:35
azureblaze:一個function 4byte 是多還少就要視狀況而定了 02/07 21:32
Favonia:可以整個程式共享... 02/07 21:44
littleshan:一個virtual function相當於一個static member 02/07 22:00
littleshan:記憶體不夠的話都是先從其他地方下手啦 02/07 22:03
littleshan:我還沒聽過先從virtual function下手的例子 02/07 22:03
yayarice:我是覺得virtual的優點遠勝於缺點 就不用怕的用吧 02/07 23:19
james732:據說MFC架構會搞得那麼複雜,特別是大量的巨集,就是想 02/07 23:22
james732:避免virtual的overhead。不過現在應該不必計較這個了 02/07 23:22
popen:請問#1BK8p46C 這篇要怎麼找? 我只會用a和/找作者和標題= = 02/19 14:19
VictorTom:就在文章列表把 #1BK8p46C (從#到C都要) 貼上就行了:) 02/20 23:13