日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

怎样学好C++ ----高手的话

發布時間:2023/12/10 c/c++ 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 怎样学好C++ ----高手的话 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

用一年時間如何能掌握 C++ ?修改

有一定 C 語言基礎,日后想從事游戲開發等工作,給自己一年時間,能在此期間精通 C++ 嗎?

?

Milo Yip,游戲程序員、《游戲引擎架構》譯者

張麥克、什么、乘風者?等人贊同本人大約從20多年前開始學習及使用C++,但仍未達到我認為「精通」的階段,甚至對于C++11的各種新特性也未掌握。然而因為我是在讀書時自學C++的,也是游戲程序員(原問題中提到題主想從事游戲開發),覺得也許能提供一點意見供網友參考。

首先引一下2010年8月號《程序員》刊登的拙文《C++強大背后》最后一段:
C++學習建議

C++缺點之一,是相對許多語言復雜,而且難學難精。許多人說學習C語言只需一本K&R《C程序設計語言》即可,但C++書籍卻是多不勝數。我是從C進入C++,皆是靠閱讀自學。在此分享一點學習心得。個人認為,學習C++可分為4個層次:

  • 第一層次,C++基礎:挑選一本入門書籍,如《C++ Primer》、《C++大學教程》、或Stroustrup撰寫的經典《C++程序設計語言》或他一年半前的新作《C++程序設計原理與實踐》,而一般C++課程也止于此,另外《C++ 標準程序庫》及《The C++ Standard Library Extensions》可供參考;
  • 第二層次,正確高效地使用C++:此層次開始必須自修,閱讀過《(More)Effective C++》、《(More)Exceptional C++》、《Effective STL》及《C++編程規范》等,才適宜踏入專業C++開發之路;
  • 第三層次,深入了解C++:關于全局問題可讀《深入探索C++對象模型》、《Imperfect C++》、《C++沉思錄》、《STL源碼剖析》,要挑戰智商,可看關于模版及模版元編程的書籍如《C++ Templates》、《C++設計新思維》、《C++模版元編程》;
  • 第四層次,研究C++:閱讀《C++語言的設計和演化》、《編程的本質》(含STL設計背后的數學根基)、C++標準文件《ISO/IEC 14882:2003》、C++標準委員會的提案書和報告書、關于C++的學術文獻。

由于我主要是應用C++,大約只停留于第二、三個層次。然而,C++只是軟件開發的一環而已,單憑語言并不能應付業務和工程上的問題。建議讀者不要強求幾年內“徹底學會C++的知識”,到達第二層左右便從工作實戰中汲取經驗,有興趣才慢慢繼續學習更高層次的知識。雖然學習C++有難度,但也是相當有趣且有滿足感的。


如果題主認為的「精通」是指上述所指的第二層次,那么我估計一年全職時間也未足夠「精通」。首先,閱讀這些書籍本身也需要不少時間,而且對于一般人來說(指除了一些學習記憶能力超強的人),很可能需要閱讀幾遍才能記住一些細節。另外,閱讀后必須要練習。除了入門的習題外,還需要做一些工程向的項目,才能了解各種語法、編程范式的使用方法及時機,理想地建議參與一些開源項目。然而,學習是需要不斷思考并把結果沉淀,方法包括與朋友討論、寫博客、寫知乎答案等,這些都需要時間。

如引文末段所指出,我建議不要把「精通C++」作為一個一年目標,應該要把學習語言作為一個持續的過程,同時要把語言運用在具體的應用場合中。

---------------------------------------------------
再討論C++與游戲開發。

看到有不少答案討論到有關C++是否游戲開發者所必須的技術。我認為,這并不是完全必須的,但許多游戲開發項目需要到C++。以下列舉一些過往曾流行的游戲平臺/類型:
  • PC單機游戲(Windows)
  • PC網絡游戲(Windows、Linux)
  • 移動平臺游戲(J2ME、Symbian、Palm……)
  • 家用游戲機游戲(PS1/2/3/4、XBox、Wii……)
  • 掌上游戲機游戲(GB、GBA、NDS、PSP……)
  • 網頁游戲(HTML、Flash)
  • 智能移動設備游戲(iOS、Android)
  • 我們會發現,除了J2ME和網頁游戲外,大多數的平臺都支持(或只支持)原生編程。而原生編程最常用的就是C/C++和匯編。這種現象并不難解譯,再次引用拙文:

    應否選擇C++
    哪些程序適宜使用C++?

    C++并非萬能丹,我按經驗舉出一些C++的適用時機。

    • C++適合構造程序中需求較穩定的部分,需求變化較大的部分可使用腳本語言;
    • 程序須盡量發揮硬件的最高性能,且性能瓶頸在于CPU和內存;
    • 程序須頻繁地與操作系統或硬件溝通;
    • 程序必須使用C++框架/庫,如大部分游戲引擎(如Unreal/Source)及中間件(如Havok/FMOD),雖然有些C++庫提供其他語言的綁定,但通常原生的API性能最好、最新;
    • 項目中某個目標平臺只提供C++編譯器的支持。

    按應用領域來說,C++適用于開發服務器軟件、桌面應用、游戲、實時系統、高性能計算、嵌入式系統等。


    很大程度上,游戲──或說游戲引擎,都是C++非常適合的應用時機。

    一些人認為,游戲開發者使用現成的引擎,就不需要使用C++了。過往,業界有一個普遍常識,就是用C++開發游戲引擎,而游戲引擎提供腳本引擎供編寫游戲邏輯代碼。但這個觀點被Unreal Engine 4的決策改變,UE4放棄了維護多年且被大量使用的UnrealScript腳本語言,而改用原生C++作為游戲邏輯編程的語言。此決策背后有多個原因,但這里只想舉出這例子展示C++在游戲開發中的用途及潮流,具體原因分析就不詳細展開了。

    除了自行研發游戲引擎需要使用C++,我們可以看到,大部分游戲引擎都提供了其C++原代碼(Unity算是例外),這讓我們可以
  • 方便調試游戲
  • 深度剖析、優化游戲的性能
  • 為引擎擴展新功能
  • 修改現有引擎以適應項目所需
  • 在專業的游戲開發中,這些都是很常見的工作任務。所以,即使并非自研引擎,并使用腳本語言開發游戲邏輯,也有很多機會需要使用C++。

    最后,「還需學習什么」是一個很難簡單回答的問題,因為游戲開發涉及的知識面很廣。建議可參考本人譯作。

    ?

    轉載于:https://www.cnblogs.com/likeatree/p/4179180.html

    總結

    以上是生活随笔為你收集整理的怎样学好C++ ----高手的话的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。