精華區beta Programming 關於我們 聯絡資訊
==> 在 "Knight" <knight@handel.mba.ntu.edu.tw> 的文章中提到: > class base {}; > class derived : public base {}; [deleted] > 根據help的說法,應該 t2 的 name() 是 derived 才對啊! > 結果兩者分別為: > class base * > class base > 偵測不出執行時期的型別,RTTI還有什麼用勒? The C++ Programming Language 3/e 第 15.4 節有言: C++ 的 RTTI 機制(尤其是 dynamic_cast、typeid)要正常運作, 運算元就必須是個 polymorphic type(多型型別)。 所以, 只要你把上面的程式小改一個地方: class base { virtual void f() {} }; // 讓它變成多型型別 就能得到你想要的效果了。 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ≡ 何陋居 ≡ 雋永難忘的事總落在願聽任其發生的人身上。 Jeffrey A. Kottler, 《旅行,重新打造自己》 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- * Origin: ★ 交通大學資訊科學系 BBS ★ <bbs.cis.nctu.edu.tw: 140.113.23.3>