物件導向,這裡是機掰客家人的啦。
※ 引述 《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 語言了吧?
以上
穴穴指交