C++ 的缺點同時也是 C++ 的優點,那就是關於指標的爭議。
但是站在維護的觀點上,如同 wctang 所言
「要維護一個 template 高手的程式一定讓我頭大」。
就這點來說確實如此,不過這要看你維護的是什麼。
如果你所維護的是一支商業程式,需要時時依客戶需要來調整,
那麼 java 是最好的選擇。
但如果你維護的是一個高效能、可以有特定輸出入規格以及功能性完整的函式庫,
那麼 C++ 才是首選。
除了 primative 纇的資料,java 只能使用指標,而且那個指針還不能平移。
但是為了充分運用機械效能,要讓指標達到高效的話,當然得在資料型別上讓步。
其實 C++ 的 virtual 關鍵字也算是一種讓步和彈性,
有了 virtual 再加上一些技巧也可以讓 C++ 擁有 reflection 的能力。
當然,那不是 C++ 天生的。
其實可以建議 C++ 標準委員會,
將 RTTIEnable 關鍵字納入 class 的修飾子之一,
使 reflection 能力變成 C++ 天生的一環。
實做上也不困難,只不過是將所有的成員巡弋過一次,
並新增為該類別的 RTTInformation 成員中罷了,
而那可以是已被標準委員會制定好的資料結構。
長的像這樣:RTTIEnable class MyClass { … };
--
┌─────◆KKCITY◆─────┐ KKBOX◤歌名╱歌手╱歌詞╱專輯◢搜尋
│ bbs.kkcity.com.tw │ ★ http://www.kkbox.com.tw ★
└──《From:109.22.83.10 》──┘ 超過60家唱片公司合法授權 音樂盡情下載
--