看板 Soft_Job 關於我們 聯絡資訊
※ 引述《killer5039 (hjfcjgf)》之銘言: : 大家好 : 小弟最近想要學C++為以後求職工具 : 由於是完全沒學過的新手 想說先自學一陣子在去補習班 : 想請各位推薦幾本C++初學者的書 : 另外有沒有跟我一樣的前輩可以分享一下呢 C++目前領域大概是下列這幾種 遊戲/影像處理/聲音處理/壓縮/CUDA .. 或者對效能很要求的 寫 C/C++ 最大優點在於記憶體, 但最大缺點也是在記憶體, 當一個案子越來越大時, 找 memory leak 跟 crash 的時間並 沒有想像中少. 當然有很多工具, 但比起有記憶體回收的語言就 是得花時間找 C++ 只是更複雜而已, 一群專家? 做了一堆 template ... (跟一堆 其實我也不是很清楚的標準,抱歉資質駑鈍). 若工作沒有限定 C++ 只能 使用到哪些 C++ 標準, 我認為co-work會非常混亂. 但這邊還只是 公司內部還沒有提及公司與其他公司的co-work. 目前 python/golang/swift 有程式語言簡單化的趨勢, 但 C++ 卻 有複雜化的可能, 這也許跟他的歷史包袱有關. - 建議從C學起瞭解記憶體,瞭解計算機架構,呼叫一點system call, 有時間在玩玩 thread, mutex 還有自己寫一寫 linked-list, stack 等這些都 OK 後再來就是接觸 open source lib, 怎麼使用, 怎麼聯結 , 怎麼呼叫, makefile 怎麼寫並且還可以接受之後再談C++我認為比較實際. 簡單說不要把學C++當成一個終點. 那只是一個開始而已. 但若只是開始 C 會 更容易些. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.230.23.181 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1490925066.A.EF9.html
loveflames: C/C++很常遇到stack frame損毀的事,如果第三方API用 03/31 09:54
loveflames: 夠多的話,當掉還好,就怕沒當掉只破壞返回值 03/31 09:55
doublescn: 其實最麻煩的還是破壞到沒用到區域,但確不會crash 03/31 10:00
doublescn: 若再加上thread的種種不確定性, 真的容易讓人抓狂阿 03/31 10:01
iLinux: 同意此觀點,C可以讓人學習到更多細節,C++則是方便快速開 03/31 10:49
iLinux: 發,但是現在Python似乎也很快速XD 03/31 10:49
appleway: Memory leak 的話,就盡量用smart pointer囉 03/31 13:07
steve1012: C++不算開發快速吧 但是一些好用的特性比c多很多 又比 03/31 13:52
steve1012: 其他語言快一點 03/31 13:52
Sirctal: C++11 也有GC機制了阿 而且還有 move semantics 03/31 16:16
csfgsj: 所以它就越來越不像低階語言,有點四不像 03/31 16:42
loveflames: 11沒有GC吧,你說的那個minimal GC最後我記得取消了 03/31 18:36
hotdogmc: smart pointer? 03/31 20:05
pttworld: C like 是效能。 03/31 20:37
Sidney0503: shared_ptr就是GC機制 04/01 14:48
sorryla: smart pointer跟GC還是有點不同吧 GC你無法掌控何時記憶 04/02 01:18
sorryla: 體會被清除 smart pointer只要沒ref count當下就會清 04/02 01:18
steve1012: Smart pointer 不是gc吧 04/02 05:39
steve1012: 而且stroustup 本人就不喜歡gc 他喜歡RAII 04/02 05:41
loveflames: 正確來說smart ptr是RAII加資源所有權判斷 04/02 07:31
kwpn: shared_ptr不是GC拉 到底有沒有學過C++11啊 不懂不要亂教 04/03 00:46
johnny94: 會說 shared_ptr 就是 GC 的,不是不懂 shared_ptr 就是 04/04 08:35
johnny94: 不懂 GC 04/04 08:35