精華區beta Programming 關於我們 聯絡資訊
※ 引述《godfat (godfat 真常)》之銘言: : ※ 引述《march20 ()》之銘言: : : RTTI 不支援是 C++ 的錯, 不是 wx 的錯 :P : : 如果 C++ 像 java 一樣有個 root class (i.e java.lang.Object), RTTI 會簡單很多. : : 沒有這種 construct, RTTI 只能靠 macro 變出來, 會髒到不行. (MFC 就這樣搞的) : RTTI 怎麼有辦法用 macro 變出來? : macro 單純是文字取代,不可能獲得執行期資訊 MFC 的 RTTI (呃, 也只是那群 C 開頭那群 class 才有, 不是全部的 class 都有) 其實是 macro + virtual function 變成的. (依稀記得有什麼 DELCARE_blah blah 之類的巨集 ..) 其實說來跟 java 也沒差太多, 只是 java RTTI 是 syntax + libraray 達成, 然後全部的 class 都能拿到 RTTI 資訊 (其實連 primitive type 都可以, java 的reflection 功能真是強大!) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 71.137.21.30 ※ 編輯: march20 來自: 71.137.21.30 (07/29 16:35)
march20:不知道為啥我對 template 有些惡感 71.137.21.30 07/29 16:50
march20:也許我是視覺系生物 @@ 71.137.21.30 07/29 16:50
march20:btw, 時代變真快啊, 很多東西都在進步:P 71.137.21.30 07/29 16:57
march20:但同時學科也愈分愈細了, 開始有種隔行 71.137.21.30 07/29 17:00
march20:如隔山的感覺 ^^; 71.137.21.30 07/29 17:01
yoco315:C++對全部型態都有rtti資訊.. 140.114.78.32 07/29 17:06
yoco315:MFC用很醜的方法做到,不代表C++rtti很醜 140.114.78.32 07/29 17:07
yoco315:我猜想你是不曉得C++的template跟RTTI 140.114.78.32 07/29 17:07
yoco315:是長什麼樣子,所以才會有這些發言 140.114.78.32 07/29 17:07
yoco315:C++的rtti也是syntax+lib.. 我想你不知道? 140.114.78.32 07/29 17:09
yoco315:而且直接對第一級形態就支援了.. 140.114.78.32 07/29 17:10
march20:我學的 C++ 很古老了, template 我是知道 71.137.21.30 07/29 17:29
march20:但那時連 dynamic cast 這種東西都還沒有 71.137.21.30 07/29 17:29
march20:C++ 的RTTI 真的就不知道了 :P 71.137.21.30 07/29 17:30