PTT推薦

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

看板Gossiping標題Re: [問卦] C++到底難學在哪裡作者
yueayase
(scrya)
時間推噓 3 推:3 噓:0 →:8

※ 引述《tatty5566 ( )》之銘言:
: ※ 引述《iLeyaSin365 (365)》之銘言:
: : C++是物件導向,比C困難吧?
: : 打開Cpp語言的程式碼
: : 我看到的不外乎質樸的for循環、
: : 列印的語法、函數、參數。
: : 雖然覺得C++看來看去就是類似的感覺,甚至比javascripts感覺更簡陋一些。
: : 好像會陡然上升墜五里霧。
: : 如果拿有C語言體質的rust相比,
: : Rust看起來好像更深奧(更多概念)。
: : 到底C++難在哪?
: 看到標題我就想問,C++是不是沒那麼適合新手學啊?
: 我資工大一上程設就C++,那時候用的是螞蟻書
: 之後不知道是我沒天分,還是教授講太爛,
: 學期中講到pointer我就聽不懂,直接斷然轉學
: 後來聽說沒程設基礎的,直接從C開始學比較容易
: 不知道是不是真的
因為螞蟻書比較像字典,不太像解釋程式為什麼要加這個變數,要加這幾行code
而語法的解釋也沒有從設計和需求出發,難以吸收...

然後很多C++書,基本上就是教你怎麼使用這個語言,而不是程式問題怎麼思考+拆解
所以大多也不是給沒學過程設的人讀的...
而我認為比較適合初學者的C++書籍如下:
(1) Beginning C++20: From Novice to Professional
https://reurl.cc/8q5dO7

(2) Problem Solving with C++ or Absolute C++
https://reurl.cc/Y8dypl
https://reurl.cc/EGXELm

(3) C++ Programming: From Problem Analysis to Program Design
https://reurl.cc/xl1nAV

(4) C++ Primer Plus
https://reurl.cc/DmXG7j

這些比較符合我說的邏輯去寫

而pointer這種東西,基本上理解方式就是從它是一個存memory address的變數
這個方向下手,然後常見的使用方式:
(1) 當你設計的function call在return時,想要把傳進的parameter改掉
eg:
void swap(int *a, int *b)
{
int temp = *a;
*a = *b;
*b = temp;
}

(2) 想要一個尺寸要變動的array:
eg:
int n;
cin >> n;
int *arr = new int[n];
for(int i = 0; i < n; ++i)
cin >> arr[i];
delete [] arr;

(3) 做像linked list之類的data structure
struct Node{
int val;
struct Node *next;
};

Node *insert(Node *list, int val)
{
Node *new_node = new Node;
new_node->val = val;
new_node->next = list;
return new_node;
}

不外乎就這些

而一開始請用圖像去理解它,尤其是要理解linked list的時候

PS: Ivor Horton、Walter Savitch和D. S. Malik都是數學家
而Walter Savitch在2021已經過世了...

--

※ PTT留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.227.37.86 (臺灣)
PTT 網址
※ 編輯: yueayase (61.227.37.86 臺灣), 03/07/2023 20:27:40

whitenoise 03/07 20:29只想說,現在叫chatgpt代勞就好

digimaster 03/07 20:35chatgpt寫的code不見得完全正確

LiveInNow 03/07 20:35之前要寫一個股市交易的pine語言 網路

LiveInNow 03/07 20:35找不到人接案 用chatgpt寫出來了

blc 03/07 20:36要懂才知道chatgpt有沒有瞎掰

backzerg 03/07 20:36指標的指標 指標的指標的指標

LiveInNow 03/07 20:36就把他的答案再丟回去問他 一直問到對

LiveInNow 03/07 20:36為止

whitenoise 03/07 20:44不用懂沒關係吧,知道如何後端驗證就

whitenoise 03/07 20:44好,前端的事交給chatgpt,多省事

siriusx 03/07 20:50garbage in garbage out