現在很多人都覺得C++學起來相當的費勁, 特別是對剛入門的, 看到最後直接就沒法看下去了, 抽象的邏輯太多了, 越看越迷糊, 最後也就選擇了放棄。 筆者看到很多大學開設的第一門程式設計語言就是C++, 如果單純從學習的角度考慮學習下物件導向整體概念, 先讓自己有個大致的瞭解。 然後慢慢的切入到最後的泛型程式設計, 再到設計模式。
前些日子有個學習C++程式設計的小夥伴, 跟我聊到說已經換程式設計語言了, 換成java了, 說到C++看到後面直接就沒法進行下去了, 越看越迷糊。
為什麼大家都覺得C++難學? C++到底難在哪?
一. 基礎語法細節繁雜,
特別是在編譯時候,
折騰半天才能編過去
很多老程式師談起C++都會覺得這門語言博大精深, 越學越覺得有味道, 但是對於初學者學習的初期需要建立一個自信心, 初期需要有點小小的成就感, 才會有繼續進行下去的信心。
C++在物件導向語言裡面的語法複雜度算是最高的了,
常見的java語言相比C++已經簡單了許多,
主要指的是語法細節方面。
C++在編譯時候做了很多的限制,
設計思想上在編譯上多下功夫,
儘量不要把問題帶到運行過程中。
玩過C語言的都會覺得C++編譯起來講究太多,
C語言編譯起來只要不是致命性的錯誤基本上都能編譯過。
有多少初學者倒在運算子的重載上, 再加上覆蓋概念這麼一折騰, 更加不知道東西南北了。 C++在語法設計上儘量範本化, 集成性。 又有多少人對範本類, 類範本,
二 物件導向程式設計概念講起來容易, 但是真正理解還需要實際專案來徹底明白
很多人都覺得物件導向語言, 概念理解起來很容易,
物件導向的一個特性就是封裝性, 就是把一些細節封裝成一個物件, 外邊想直接調用直接先產生實體, 排除一些障礙。
繼承性就是針對面向過程中重複實現代碼這一缺陷而專門設計的, 已經寫好多代碼, 或者實現的特性, 再次使用的時候, 直接繼承過來能用的直接用上, 有些方法不需要專門再去實現一遍。
多態是在繼承基類的基礎上完成的, 因為類內容不可能完全一樣,
三. C++直接可以操作的項目, 一般來講比較難, 不適合初學者使用
學了C++主要在遊戲開發, 系同級別框架開發, 或者嵌入式方面開發,相對來說入手比較難。初學者做個專案練手可能會需要一個適應期。很多架構師對C++倒是推崇備至,有些人甚至喊出了C++夠學一輩子的。博大精深,非常有意思。初學者可能感受最多的就是他繁雜的語法細節,以及暈乎乎的程式設計思想,而且相比別的程式設計語言,貌似工作機會還不是很多。
筆者根據多年從業經驗總結出來的C++的一些點,可能不一定很準確,從業時間越長越覺得這門語言相當有意思,如同一壺老酒放的時間越長越有味道。
當然在這並不是打擊初學者,C++就是老虎了,碰不得,摸不得,更多是提醒初學者這門語言有多少特性。在學的過程中應當有哪些注意事項。還是那句話選擇那種語言並不重要,重要的是自己覺得合適。
如果對程式設計感興趣,想瞭解更多的程式設計知識,解決程式設計問題,以及入門指導,幫你解決程式設計中遇到的困惑,請關注本頭條號,大家一起學習,一起進步,一起熬夜加班。
或者嵌入式方面開發,相對來說入手比較難。初學者做個專案練手可能會需要一個適應期。很多架構師對C++倒是推崇備至,有些人甚至喊出了C++夠學一輩子的。博大精深,非常有意思。初學者可能感受最多的就是他繁雜的語法細節,以及暈乎乎的程式設計思想,而且相比別的程式設計語言,貌似工作機會還不是很多。筆者根據多年從業經驗總結出來的C++的一些點,可能不一定很準確,從業時間越長越覺得這門語言相當有意思,如同一壺老酒放的時間越長越有味道。
當然在這並不是打擊初學者,C++就是老虎了,碰不得,摸不得,更多是提醒初學者這門語言有多少特性。在學的過程中應當有哪些注意事項。還是那句話選擇那種語言並不重要,重要的是自己覺得合適。
如果對程式設計感興趣,想瞭解更多的程式設計知識,解決程式設計問題,以及入門指導,幫你解決程式設計中遇到的困惑,請關注本頭條號,大家一起學習,一起進步,一起熬夜加班。