看板 C_and_CPP 關於我們 聯絡資訊
: 推 GoldenField:如果不知道檔案型態的時候 用void*不是很正常嗎? 04/30 19:52 : → GoldenField:應該是 變數型態 04/30 19:52 比較好的作法是 polymorphism 你雖然不知道它真正的型態 但你知道要如何操作它 所以應該把操作界面抽出並定義為 base class 然後再衍生出可能的 subclass 這邊我說的 polymorphism 不只是 dynamic polymorphism 使用 template 達成的 static polymorphism 也可以辦到 使用 void* 不是不能解決問題 但只要你把某個指標轉成 void* 就失去了所有的資訊 所有的物件只要被轉成 void* 不管它們有沒有共同的操作界面 都會被一視同仁地對待 因此程式設計師必須花費多餘的力氣去分辨它們 這是個很值得討論的部份 因為它是 C 與 C++ (或是說 procedural 與 OOP)在思維上的重大差異之一 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.62.3.35
tomex:深表贊用,C#各類別都繼承自Object, C++寫作時該多使用介面 04/30 23:00