PTT推薦

Re: [問卦] C++到底難學在哪裡

看板Gossiping標題Re: [問卦] C++到底難學在哪裡作者
wuyiulin
(機掰客家人)
時間推噓12 推:14 噓:2 →:12

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

※ 引述 《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留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.42.137.204 (臺灣)

※ 文章網址:
https://www.ptt.cc/Gossiping/E.Dx7CQ2EDRjeU

cuteSquirrel 03/06 01:56pointer 和 reference 吧

cuteSquirrel 03/06 01:56STL + algorithm 初學者常見的坎

CLANNAD 03/06 02:07iterator是為了STL/泛型algorithm設計的

CLANNAD 03/06 02:08現在有range可以用了啊

shino95995 03/06 02:21& * ** 光這三個就搞死公司一堆菜雞

shino95995 03/06 02:22有點不太明白現在大學的畢業標準

ninggo 03/06 02:30星星的藝術才是真男人的語言

johnhmj 03/06 02:31鄉民 ★機掰客家人 = new 鄉民(機掰)

horseface 03/06 02:42媽的能用reference member用三小point

horseface 03/06 02:42er,為什麼一堆老鳥喜歡降低可讀性

funsky 03/06 02:43 小妹妹文組 聽不懂啦

LaAc 03/06 02:47指標這種東西就是考試考過後,比較菜的人(

LaAc 03/06 02:47例如我)自己寫自己的專案沒事不會用到的東

LaAc 03/06 02:47西

AmigoSin 03/06 02:51container裝自己定義的datatype真好用

jhjhs33504 03/06 02:53fine tune在用的

acgotaku 03/06 03:00c++光字串處理atoi atol 就夠噁心人了

peter98 03/06 03:11atoi atol是C 不是C++

JustBecauseU 03/06 03:43smart pointer好難

MoonCode 03/06 04:07c 強型別?

抱歉寫錯,C是弱型別。 睡前腦昏昏的

talentman 03/06 05:21Template

johnhmj 03/06 05:43字串處理 可以自己寫自訂函式

Max112358 03/06 05:53pointer指向記憶體位置簡單粗暴啊

b2305911 03/06 07:04學C再學python根本看到魔法==

wario2014 03/06 08:35python就萬用了,學三小c++

pttouch 03/06 09:01馬的之前入門被騙學C++幹咧

※ 編輯: wuyiulin (111.82.186.106 臺灣), 03/06/2023 11:25:17

※ 編輯: wuyiulin (111.82.186.106 臺灣), 03/06/2023 11:26:03

kindaichitom 03/06 19:02C的難點還有function pointer

kindaichitom 03/06 19:02有一些奇奇怪怪的變化