Re: [請益] 撰寫模擬器

看板Programming作者時間18年前 (2007/02/24 02:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串6/7 (看更多)
※ 引述《Dungeon.bbs@ptt.cc (Dungeon)》之銘言: > ※ 引述《typecommand (:))》之銘言: > : 1.C執行效率比C++好,而且學習曲線也較短,照理 > :   說我應該選C,但是我已習慣物件導向的程式觀念 > :   ,不想再重回以前的程序導向程式設計,而且我 > :   撰寫的這個模擬器,日後還會繼續擴充功能,怕 > :   用C來撰寫,日後功能會擴充不易。 > 有一個很嚴重的問題。 > 學過物件導向分析與設計了嗎? > 沒有?!! > 那C++頂多只是拿來把FUNCTION包到CLASS裡罷了。 其實不單單只是這樣子而已, 我也看過有人為了「寫起來比較方便」, 所以還真的會亂翻書擷取片段觀念用上繼承跟多型, 還能生出一個很白目的繼承樹出來, 只有寫的那個人自己知道該怎麼去用它。 > 有人真的只學C++就能寫出物件導向架構的程式? > 這是不可能滴! 這還是有可能的, 包括我和我身邊不少人都是光看書名裡有「C++」的書, 就學成基礎觀念和基本應用的方法, 之後才去看比較一般性非特定語言的物件導向書籍來加強觀念, 其實 C++ 存在很多進階書籍, 取其內容聯集常能構成 1/4 - 1/2 本不同專業教科書的內容。 你可能會覺得書名有 C++ 跟只學 C++ 是不同的兩回事, 但是很多人當初讀那些書的原意就只是要精進 C++, 像是 Effective C++、Exceptional C++、Inside the C++ Object Model 等等。 > 至於模擬器這種需要根據硬體特性寫作的東西, > 程序導向才是最優美的。 硬要套物件導向的觀念 > 進去,會被很多繁瑣的細節搞到架構出不來。 套錯誤的物件導向觀念進去才會發生這種事情, 物件的分類和繼承體系設計, 並不能被現實環境的物體牽著鼻子走, 而是應當從工程角度出發去做規劃, 很多教科書為了方便讀者理解舉了一些不好的例子, 卻又沒有指出實際上那樣做可能發生的問題, 才會讓一堆新手搞不清楚狀況就錯誤規劃, 結果掉進一堆本來不該出現的繁瑣細節深淵之中。 > 什麼?? > 有人天真的認為同樣寫一個 function, 在把他放進去 > class以後就會變得比較好維護? 當存在多個 namespace 的時候, 如果把 function 封裝進 class 會容易維護是真的, 否則不熟悉 Interface Principle 或 Koeing Lookup 的 programmer, 容易寫出潛藏 ambiguous function call 的 code 出來, 讓別人以及他自己在使用上遇到一些麻煩; 而 member functions 跟 class 有較強烈的關聯性, 所以 member functions 會較優先被搜尋到, 那些對新手來說較詭異的問題也得以避免。 不要以為這種問題很少發生, 我三天兩頭就遇到有人丟 ... ambiguous ... candidates are ... 的 error 來問。 -- Name: Tseng, Ling-hua E-mail Address: uranus@it.muds.net School: National Tsing Hua University Department: Computer Science Interesting: C++, Compiler, PL/PD, OS, VM, Large-scale software design Researching: Software pipelining for VLIW architectures Homepage: https://it.muds.net/~uranus -- ╔═══╗ ┼────────────────────────╮ 狂狷 Origin:[ 狂 狷 年 少 ] whshs.cs.nccu.edu.tw ╰─╮ 年少 ┼╮ < IP:140.119.164.252 > ╰─╮ ╚╦═╦╝ From:61-230-216-187.dynamic.hinet.net ─╨─╨─ KGBBS 遨翔"BBS"的狂狷不馴;屬於年少的輕狂色彩 [修改]tinlans:61-230-216-187.dynamic.hinet.net 18/06/01 11:58:59
文章代碼(AID): #15tolY00 (Programming)
文章代碼(AID): #15tolY00 (Programming)