作者 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
nowitzki0207: 工啥小啦10F 49.158.76.195 台灣 03/05 12:14
kingstongyu: 處理器不是記憶體喔~~11F 61.224.200.209 台灣 03/05 12:14

--
作者 muse87131 的最新發文:
點此顯示更多發文記錄