作者 muse87131 ()標題 Re: [問卦] C++到底難學在哪裡時間 Sun Mar 5 12:07:00 2023
※ 引述《iLeyaSin365 (365)》之銘言:
: C++是物件導向,比C困難吧?
: 打開Cpp語言的程式碼
: 我看到的不外乎質樸的for循環、
: 列印的語法、函數、參數。
: 雖然覺得C++看來看去就是類似的感覺,甚至比javascripts感覺更簡陋一些。
: 好像會陡然上升墜五里霧。
: 如果拿有C語言體質的rust相比,
: Rust看起來好像更深奧(更多概念)。
: 到底C++難在哪?
:
因為C++有太多一不小心就會出事的細節。
舉個常見的例子:
今天有個vector<T>
你從vector拿T&出來用的同時,另外一條thread正在push_back到vector裡,碰巧觸發vec
tor的array resize,原本存在heap的資料統統copy到新的memory address,你的T&就會
拿到垃圾值,seg fault油然而生。
C++多的是這種應注意而未注意的小細節,連老手寫都會忘記,更何況是新手?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 71.230.161.115 (美國)
※ 作者: muse87131 2023-03-05 12:07:00
※ 文章代碼(AID): #1a11Lccb (Gossiping)
※ 文章網址: https://www.ptt.cc/bbs/Gossiping/M.1677989222.A.9A5.html
※ 同主題文章:
Re: [問卦] C++到底難學在哪裡
03-05 12:07 muse87131
※ 編輯: muse87131 (71.230.161.115 美國), 03/05/2023 12:08:01
推 s505015: C++難在指標吧 我覺得指標頗麻煩
每次看都覺得又有其他想法1F 223.137.170.212 台灣 03/05 12:08
→ Xaymaca: 講到這個我就氣 一開始真的找不到為什麼3F 50.92.39.94 加拿大 03/05 12:08
推 apsol: 指標c 就有了....4F 1.160.229.1 台灣 03/05 12:09
→ s505015: 也可能我學的不是很全吧 我是自己拿書來看的5F 223.137.170.212 台灣 03/05 12:10
推 gino0717: 你這是race condition 啊7F 123.194.162.12 台灣 03/05 12:10
就算沒有race也會發生。單一thread拿reference然後push_back也會發生這種事。
※ 編輯: muse87131 (71.230.161.115 美國), 03/05/2023 12:11:36
→ kingstongyu: 記憶體不夠用喔!?跟日本買吧~~8F 61.224.200.209 台灣 03/05 12:13
→ mdkn35: 是不會用lock9F 111.83.92.12 台灣 03/05 12:14
→ kingstongyu: 處理器不是記憶體喔~~11F 61.224.200.209 台灣 03/05 12:14
--