作者 wuyiulin (機掰客家人)
標題 Re: [問卦] C++到底難學在哪裡
時間 Mon Mar  6 01:55:23 2023



物件導向,這裡是機掰客家人的啦。

※ 引述 《iLeyaSin365 (365)》 之銘言:
:  
: C++是物件導向,比C困難吧?

個人是覺得物件導向比較簡單,
因為體感上比較好 trace。

: 打開Cpp語言的程式碼
:  
: 我看到的不外乎質樸的for循環、
:  
: 列印的語法、函數、參數。
:  

蛤?

:  
: 雖然覺得C++看來看去就是類似的感覺,甚至比javascripts感覺更簡陋一些。
:  
: 好像會陡然上升墜五里霧。
:  
不知道,我沒寫過 JS。
:  
: 如果拿有C語言體質的rust相比,
:  
: Rust看起來好像更深奧(更多概念)。
:  
: 到底C++難在哪?
:  
:  

不知道,我沒用過 RUST。




以下是菜雞工程師的體感心得,
大家當睡前故事聽聽就好,
或許有些是講錯的(#。

個人比較常使用 C、modern CPP、 Python3。




以 純C 角度看 CPP:

這玩意有夠好用, vector 想塞什麼就塞什麼。

多維度初始化還能用填充函數,
感覺與效率就是很美!

更何況是 OOP,所以算元素的時候直接不用考慮變數型別,直接下 .size() 完全就是正確


別忘了 CPP 還有一堆 STL 威力加強…。

換句話來說,
現在要叫新手小白入門純C的 array ,
簡直就是一場災難。

反正指標會遇到的問題就是會遇到,
寫 C 家族就要指標,所以這裡不考慮指標難度。




從 CPP 角度看 Python:

雖然這玩意兒可以解決一堆垃圾手刻問題
(e.g. 大數問題),
但是執行效率非常堪憂。

優點是語法魔幻,
可以指定 idx 矩陣 賦值給整個矩陣。

這在我初寫 C 的時候,是想都不敢想啊(#。
Pseudo code 等級的語法翻譯!

還有什麼神奇的 lambda 與列表推導式…。
(C++17 好像更新了列表推導式?)




至於排除與其他語言比較,
CPP 給我的感覺算是平衡了效率與可讀性。



CPP 給我比較迷幻的地方在於:
迭代器的使用還是比較困惑,
因為報錯的時候給的是記憶體位置。

如果今天做的是隨機存取的 vector 就更慘了,
想不到要撈哪裡出來看。

但是設計這個迭代器應該有其用途,
不可能只為了防止記憶體越界…吧?


可能是我還寫得不夠多?

如果有知道的先輩可以在底下留言讓我知道。



回到題幹,CPP 到底難學在哪?

以我的體感,CPP 比 C 簡單多了。



你應該要問的問題是 C 到底難學在哪?

Ummmm?

強型別、指標、++i 與 i++…?

這三個學完再開幾個 array 來尻,
注意不要尻到沒宣告的記憶體位置,
撇開沒有學過的演算法與資料結構,
應該就能自稱入門 C 語言了吧?


以上

穴穴指交

--
ohrring: 哪部10/25 21:56
wuyiulin: ...讀什麼科系居然會有女生10/25 21:56
jw0311: ...二樓讀什麼科系居然會認為沒有有女生10/25 21:57
hgclnh3: 三樓讀什麼科系會覺得女生理所當然10/25 21:57
jw0311: 護理系.....10/25 22:06
wuyiulin: 電機系...10/25 22:36

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.42.137.204 (臺灣)
※ 作者: wuyiulin 2023-03-06 01:55:23
※ 文章代碼(AID): #1a1DUDU5 (Gossiping)
※ 文章網址: https://www.ptt.cc/bbs/Gossiping/M.1678038925.A.785.html
※ 同主題文章:
Re: [問卦] C++到底難學在哪裡
03-06 01:55 wuyiulin
cuteSquirrel: pointer 和 reference 吧
STL + algorithm 初學者常見的坎1F 114.37.204.30 台灣 03/06 01:56
CLANNAD: iterator是為了STL/泛型algorithm設計的現在有range可以用了啊3F 106.64.121.59 台灣 03/06 02:07
shino95995: & * ** 光這三個就搞死公司一堆菜雞有點不太明白現在大學的畢業標準5F 49.216.55.50 台灣 03/06 02:21
ninggo: 星星的藝術才是真男人的語言7F 118.231.128.11 台灣 03/06 02:30
johnhmj: 鄉民 ★機掰客家人 = new 鄉民(機掰)8F 223.140.187.69 台灣 03/06 02:31
horseface: 媽的能用reference member用三小pointer,為什麼一堆老鳥喜歡降低可讀性9F 69.75.187.83 美國 03/06 02:42
funsky:  小妹妹文組 聽不懂啦11F 36.234.142.109 台灣 03/06 02:43
LaAc: 指標這種東西就是考試考過後,比較菜的人(例如我)自己寫自己的專案沒事不會用到的東西12F 111.250.1.144 台灣 03/06 02:47
AmigoSin: container裝自己定義的datatype真好用15F 111.250.194.238 台灣 03/06 02:51
jhjhs33504: fine tune在用的16F 220.135.175.72 台灣 03/06 02:53
acgotaku: c++光字串處理atoi atol  就夠噁心人了17F 59.115.110.76 台灣 03/06 03:00
peter98: atoi atol是C  不是C++18F 73.195.162.171 美國 03/06 03:11
JustBecauseU: smart pointer好難19F 174.164.83.118 美國 03/06 03:43
MoonCode: c 強型別?20F 125.228.246.251 台灣 03/06 04:07
talentman: Template21F 172.58.43.170 美國 03/06 05:21
johnhmj: 字串處理 可以自己寫自訂函式22F 223.140.187.69 台灣 03/06 05:43
Max112358: pointer指向記憶體位置簡單粗暴啊23F 1.200.134.174 台灣 03/06 05:53

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