→ Caesar08: 3e跟4e有點舊,還是建議看5,雖然是英文版 03/05 10:38
嗯嗯 我英文沒太好,雖然是看得完,但效率應該有差
比較希望能先讀中文版,早一點把c++底子打好~
目前只略懂c而已
很謝謝您的建議
推 descent: The C++ Programming Language國際中文版第四版 這本不錯 03/05 11:42
→ descent: 勝過你找的那本, 也有說明 c++ 11 03/05 11:43
感謝回覆,那請問大大,若我主要是想學習物件導向的觀念
請問這本螞蟻書和c++ primer哪個比較推呢?
因為我主要是想學物件導向,c的程序導向基本還算ok~
※ 編輯: kai5566 (122.121.25.94), 03/05/2016 12:50:57
→ descent: 這本是 c++ 的發明人寫的, 中譯本也翻得不錯 03/05 13:38
→ descent: 希望作者有給你這本書的信心。 03/05 13:39
→ descent: Programming Principles and Practice Using C++ 03/05 13:39
→ descent: 我比較推薦這本的中譯本, 作者也是 c++ 的發明人 03/05 13:40
→ descent: 有第二版 03/05 13:40
感謝樓上,那我想從頭學OOP觀念
The C++ Programming Language c++程式設計藝術?
Programming Principles and Practice Using C++
這兩本哪本推薦呢?
雖然自己翻過比較洽當,但高雄實在找不到書店有賣這些比較專業的書
真的很可惜!!!
→ Caesar08: the c++是給已經有程度的人,principle是給初學者 03/05 17:03
→ Caesar08: 不過我看你的問法,我覺得看primer會比較好 03/05 17:04
推 kwpn: 我覺得c++發明人那本範圍太廣了,所有東西都有,每項都講的不 03/05 17:40
→ kwpn: 多,比較適合reference用. 比較推薦新手看c++ primer,範圍較 03/05 17:41
→ kwpn: 小許多但主要要學的都有,每項描述比較多也較生動 03/05 17:43
→ kwpn: 找不到就上網天瓏訂都會有 03/05 17:44
→ a27417332: 基礎可以參考網路資料,我自己覺得那些書都不好啃啦 03/05 19:00
→ a27417332: 雖然網路資料有的可能是錯的就是了(汗 03/05 19:01
→ freeunixer: 基礎不找幾本書打好就要 ref 網路,你就去 ref 到死吧. 03/05 19:21
→ freeunixer: 你乾脆也不用上學,在家上網自學就能出師了. 03/05 19:22
→ Caesar08: 有讀過書跟沒有的差別,就是你不知道甚麼是正確的寫法 03/05 20:07
→ Caesar08: 你很難判斷你這樣寫的好壞,因為他執行結果都是正確的 03/05 20:08
→ Caesar08: 如果你只是偶爾要用某個語言,那你的確網路上找就好 03/05 20:09
→ Caesar08: 但如果你要學好一個語言,讀書幾乎是不可避免的 03/05 20:09
大家好,我決定買
C++ how to programming 4/e
和C++ primer 3/e 侯捷譯了(有找到二手書)
應該看第三版還夠吧????
我也覺得需要看書,我想把c++學好!!!!
我想把物件導向學好!!!!!!!
→ descent: C++ primer 還是買 4/e 好, 除非 3/e 賣 200 03/05 21:59
→ descent: 你可以先買 c++ primer, 這本我看了 2 年才看完 03/05 21:59
我爬文竟然有人說3/e比較好... 我是找到200的沒錯
這兩版內容真的差很多嗎? 對於我想學的oop有差嗎?
→ descent: 可以先到圖書館借借看 03/05 22:26
→ Caesar08: 你真的那麼在意oop,那你就不該買primer 03/05 22:30
→ Caesar08: oop是C++提供的一個功能,介紹C++的書不會只著墨在那 03/05 22:31
→ Caesar08: primer是介紹整個C++,而不是只介紹oop 03/05 22:32
→ Caesar08: 更何況你真的要很oop,你應該學java 03/05 22:33
→ Caesar08: oop的polymorphism,有些地方可以用template取代 03/05 22:35
→ Caesar08: 這應該不是你想要的 03/05 22:35
推 bpq: 話說c++ primer 天瓏還有阿,但是要學oop也不是這本 03/05 23:59
感謝樓上各位建議~~今天蒐集一堆資料好累
那可以請bpq大哥推薦一本oop的書嗎
不過c++ primer我還是需要看
畢竟c跟c++差蠻多,我今天去書局看,原來我那麼嫩= =
推 steve1012: C++是support oop 吧 你想專精oop 感覺可以從Java c# 03/06 03:55
推 kwpn: 學完程式語言再學oop也不遲拉 03/06 09:31
嗯嗯,感謝各位前輩!
我大概會先從這幾本書開始
感謝~
其實我是最近去面試,被洗臉後,深感自己的不足
因為我的碩士論文題目,是邊做邊學用c寫出來的
也就是需要達成甚麼功能,我才去研究,例如我本來不會指標
也不會動態配置記憶體,都是我覺得需要才去學。
主管看完我的code之後表示,他們寫的都是 模組化?
以物件導向的方式去做 敏捷式開發之類的
(抱歉我對一些名詞不熟,所以聽的不是很清楚,可能表達有誤)
他大概覺得我寫的code很難維護,
然後判斷我的能力也無法去trace 他們現有的code
我的理解應該是我缺乏物件導向的觀念吧?
我寫的程式整齊,但對他們來說,可能太沒有系統
其實我也不清楚自己要往哪裡加強,
也對物件導向有點疑惑,為什麼一定要用物件導向?
例如我的論文是寫虹膜辨識
我的程式流程是
1.輸入一張照片
2.照片前處理
3.虹膜定位出來
4.特徵萃取
5.特徵存入資料庫
(以上是稍微說明)
code架構如下
1.include我寫好的函式(我每個演算法都另外存成.c)
2.main() 裡面開檔,讀取圖片
3.然後main裡面依序呼叫我的function
4.main()的最後存入binary檔
大概是這樣
其實現在我就想不透,如果我寫的是這樣的流程和架構
有需要寫成物件導向嗎?
以我這個程式來說,物件導向能幫我的程式維護更簡單,更好擴充嗎?
那要如何改寫成物件導向@@?
而我真正想讀的書,就是有說明這些的書。
我的想法就是,如果要加新功能,
不就是另外寫一個function進.c檔,然後在主程式include進去?
這是我目前的作法,也許是我還不懂oop奧妙
所以不知道oop的好處在哪吧...
依前輩們來看,我該從哪本書下手呢
還有,這樣的程式架構,真的用物件導向比較好嗎
是不是所有程式都可用oop的寫法來產生?
※ 編輯: kai5566 (122.121.25.94), 03/06/2016 11:12:54
推 ronin728: 學OOP推Design pattern 03/06 12:57
推 ronin728: 企業叫你連個小程式都要用OOP是因為OOP是主流編程風格, 03/06 13:00
→ ronin728: 他們想看你懂不懂這觀念 03/06 13:00
→ ronin728: OOP適當使用絕對有益,Linux雖然是用C語言寫的,但是也 03/06 13:06
→ ronin728: 採用OOP的思想。Gnome也是用C寫的,其中的Gobject就是C 03/06 13:06
→ ronin728: 語言的OOP框架。當然有人濫用OOP,過度設計的問題屢見不 03/06 13:07
→ ronin728: 鮮,這些東西都是雙面刃,沒有一個是銀彈。 03/06 13:07
噓 ronin728: 噓你那邊有沒有必要什麼的,以後別人用什麼你也要跟著用 03/06 13:17
→ ronin728: 公司又不是你開的,架構師又不是你在當的 03/06 13:19
先謝謝你上面的回應
但我覺得你好像誤會我的意思,
從這篇一開始我就是打著想要學習OOP OOD的想法來徵求書
所以上面那段,我怎麼會是要質疑公司要求我懂OO?
我所有提出的疑問,出發點都是想釐清OO該如何寫,為什麼要用OO
也許你已經非常熟悉,也許你從來沒碰過這樣的問題,
所以你無法體會我遇到的困難。
我已經完成一個小小題目,而我是很直觀的需要甚麼function就加入
然後在main呼叫,(我感覺就很像OO的擴充阿@_@",我就是不懂才要問)
虛心想請教,例如這樣的東西,該如何用OO改寫
我認為我就是卡在這裡,轉不過來。
而不是像你說的我要質疑業界、長官為何那麼要求OO
我這篇的目的,就是想學習OO,而且我也認為OO是必備知識。
那...我是認為你誤會了吧?
※ 編輯: kai5566 (122.121.25.94), 03/06/2016 13:38:29
→ descent: 感覺你只是為了找工作才要學 OO, 應該還是有不需要 OO 03/06 13:57
→ descent: 要求的工作。不過學習 OO 也不是壞事。 03/06 13:57
推 ronin728: 可能是我誤會你的意思了,我道歉。OOP在小程式或是只有 03/06 14:25
→ ronin728: 運算的程式裏沒辦法顯現太大的優點,你可以想像一下,一 03/06 14:25
→ ronin728: 個RPG遊戲要怎麼寫? 03/06 14:25
→ kai5566: 我算是找工作才了解到他的重要! 03/06 14:36
→ kai5566: 不用道歉,這沒什麼。 03/06 14:37
→ kai5566: 謝謝你的說明 03/06 14:37
→ kai5566: 所以主要在作運算的程式,很有可能用不到oo概念嗎? 03/06 14:44
→ ronin728: 有可能用不到,但是沒有物件導向的程式也會用到物件(資 03/06 15:07
→ ronin728: 料抽象)的概念,當然這也不是OOP的專利,資料抽象的概念 03/06 15:07
→ ronin728: 比OO更早 03/06 15:07
→ ronin728: 有一些網路系統是用Erlang寫的,Erlang有物件的觀念,但 03/06 15:13
→ ronin728: 不是Java那幫人所謂的物件導向。有些任務本身就不太需要 03/06 15:13
→ ronin728: OO。但是有些程式卻極度適合使用OO,例如GUI組件、遊戲 03/06 15:13
→ ronin728: 系統之類的。 03/06 15:14
→ kai5566: 了解!謝謝你耐心說明,我書買好啦~努力學習! 03/06 19:21
→ a27417332: 我是認真覺得基礎靠Primer打好很厲害啦...... 03/08 16:24
→ a27417332: 雖然和原Po無關,但連基本程式概念都沒有就看Primer... 03/08 16:25
→ a27417332: 而且我也只說基礎,觀念建立以後當然行有餘力就看書 03/08 16:28
→ a27417332: 至於查網路,我覺得是多看。個人學習經驗是這樣啦... 03/08 16:30
→ a27417332: 真要說「正確」的C++,也不用看書,上網看Spec好了吧 03/08 16:33
→ a27417332: 關於原Po,因為有人推相關書籍就不贅述了。 03/08 16:34
→ a27417332: X但我覺得設計這種東西碰到例子再看書會更有感覺XD 03/08 16:36
→ a27417332: 補述一下好了,我應該把基礎改完概念。大家常推薦的經 03/08 18:40
→ a27417332: 典的確都是不讀可惜。但我不認為有些東西是應該推薦給 03/08 18:40
→ a27417332: 某些族群的,因為像是越級打怪。 03/08 18:41
→ a27417332: 況且網路上我認為多的是精彩的解說文章,只看書我覺得 03/08 18:42
→ a27417332: 涵蓋的知識並不是全部。 03/08 18:42