Re: [心得]C++為何只把宣告放在HEADER FILE 內?
看板C_and_CPP (C/C++)作者littleshan (我要加入劍道社!)時間18年前 (2006/04/30 21:01)推噓1(1推 0噓 0→)留言1則, 1人參與討論串3/3 (看更多)
: 推 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
推
04/30 23:00, , 1F
04/30 23:00, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章