精華區beta Programming 關於我們 聯絡資訊
: 如果 C++ 像 java 一樣有個 root class (i.e java.lang.Object), RTTI 會簡單很多. : 沒有這種 construct, RTTI 只能靠 macro 變出來, 會髒到不行. (MFC 就這樣搞的) : 不然就得改 C++ 語法, 這麼一來很多 C++ compiler 就不支援 wx 了. : (用 "root class" 怪怪的, 有什麼 term 可以用嗎? 很久沒碰 Programming Language 了) : generic type (在 C++ 來說就是 template 啦) 有其方便性, : 但一般來說, 有了 RTTI 和 root class 後, template 就可以拿掉了, : 就算有, 也只是 syntax sugar, 這就是 java 沒有 template 但卻沒什麼人抗議的原因. : (well, 不過 "建議" 要有 generic type 的人 應該是不少, : Java 1.5 已經把 generic type 加到 java 的語法裡了. : 雖然沒有沒關係, 但有了大家都很高興, 這就叫 syntax "sugar" :P) : 在沒有 RTTI 和 root class 時, template 就像是 syntax level 的 macro, : 如果你反對大量的 macro, 那大概也不怎麼喜歡 C++ 的 template 吧. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 或許原波忽略了template和metaprogramming所帶大的影響, 連design pattern都為之而變,另外還有type trait、type list、 甚至整個boost的MPL的出生...,以前許多做不到的事情,現在都可以輕易完成 如果把template和macro等值視之,很多C++的大老都會嘆氣吧 (我想這大概是yoco大大看了以後"...."的原因) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.84.151.57
march20:yeah , you're right, 但 pattern 不一定 71.137.21.30 07/29 12:10
march20:只有 C++ 的 template 可以辦到喔 71.137.21.30 07/29 12:10
march20:也許是我比較愛 java 的 style :P 71.137.21.30 07/29 12:11
march20:pure OO 可以做到 template 的不少功能 71.137.21.30 07/29 12:12
march20:C++ 的 template 是有不少好用的地方, 71.137.21.30 07/29 12:14
march20:但如果 C++ 夠 pure OO 的話, 我會儘量少 71.137.21.30 07/29 12:15
march20:用 template (但就是沒有 囧) 71.137.21.30 07/29 12:15
march20:啊, 對了, 我沒說 macro=template, 71.137.21.30 07/29 13:02
march20:引喻不當造成誤解, 真是囧 71.137.21.30 07/29 13:03
qrtt1:haha. 您要不要去接java版壓.XD 210.59.94.179 07/29 13:36
march20:你來當版主我就去 (聊起來了 ^^;) 71.137.21.30 07/29 14:45
qrtt1:我只想當您的鄉民啊xd 210.59.94.179 07/29 16:36
cplusplus:當然手動打造都OK呀 但是性質太多相似的 61.229.42.95 07/30 13:53
cplusplus:手工會打到死的 C#跟JAVA都會這樣~ 61.229.42.95 07/30 13:53
cplusplus:有時候一種PATTERN可能伴隨多種特性 61.229.42.95 07/30 13:54
cplusplus:排列組合起來,那真的會瘋掉啊... 61.229.42.95 07/30 13:54