【如何系統(tǒng)地學(xué)習(xí) C/C++ 語(yǔ)言】有哪些C++開源項(xiàng)目可以學(xué)習(xí)呢?
我個(gè)人認(rèn)為,開源項(xiàng)目是學(xué)習(xí)一門編程語(yǔ)言非??旖萸倚兄行У姆椒?。

得益于強(qiáng)大的Github,提供了很多開源優(yōu)質(zhì)的項(xiàng)目,在這些項(xiàng)目中,我們可以學(xué)習(xí)那些優(yōu)秀程序員的編碼方式、學(xué)習(xí)并借鑒它們的程序設(shè)計(jì)模式。還能夠從這些項(xiàng)目中得到一些靈感,去動(dòng)手做一些實(shí)戰(zhàn)項(xiàng)目,讓我們從書本的理論知識(shí)中走出來(lái),走向貼近實(shí)際場(chǎng)景的項(xiàng)目,讓我們的技術(shù)得到升華可提煉,讓我們從一個(gè)普通C++程序員進(jìn)階到一個(gè)高階C++程序員。
interview
地址:https://link.juejin.cn/?target=https%3A%2F%2Fgithub.com%2Fhuihut%2Finterview
Star:24.4k
C/C++ 技術(shù)面試基礎(chǔ)知識(shí)總結(jié),包括語(yǔ)言、程序庫(kù)、數(shù)據(jù)結(jié)構(gòu)、算法、系統(tǒng)、網(wǎng)絡(luò)、鏈接裝載庫(kù)等知識(shí)。
這是一個(gè)比較適合初學(xué)者的C++項(xiàng)目,沉淀了面試過(guò)程中C++相關(guān)的一些問(wèn)題和解答,這些知識(shí)相對(duì)于書本上的內(nèi)容,更加貼合項(xiàng)目實(shí)戰(zhàn),往往都是實(shí)際項(xiàng)目中會(huì)遇到的一些問(wèn)題。
因此,這個(gè)項(xiàng)目可以讓我們脫離書籍和教程,學(xué)到很多有實(shí)戰(zhàn)價(jià)值的C++知識(shí)和技巧。
tinytetris
地址:https://link.juejin.cn/?target=https%3A%2F%2Fgithub.com%2Ftaylorconor%2Ftinytetris
Star:1.7k
這是一個(gè)利用C++實(shí)現(xiàn)的俄羅斯方塊的小項(xiàng)目,相對(duì)于那些大型項(xiàng)目,這個(gè)項(xiàng)目對(duì)初學(xué)者比較輕松,而且把C++和耳熟能詳?shù)挠螒蜷_發(fā)有機(jī)的結(jié)合到一起,這會(huì)讓學(xué)習(xí)者有更加直觀的感受,也有更加強(qiáng)烈的代入感,能夠把學(xué)習(xí)者的注意力吸引到程序的設(shè)計(jì)過(guò)程中。例如,如何實(shí)現(xiàn)方塊圖像?如何實(shí)現(xiàn)方塊的移動(dòng)和選擇?如何實(shí)現(xiàn)消除和積分功能?
這些拋出的問(wèn)題在這個(gè)小項(xiàng)目中都可以找到解答。

MyTinySTL
地址:https://link.juejin.cn/?target=https%3A%2F%2Fgithub.com%2FAlinshans%2FMyTinySTL
Star:6.3k
就如同前面介紹的那樣,STL是C++中很重要的組成部分,是學(xué)習(xí)C++無(wú)法繞開的概念。
MyTinySTL通過(guò)一個(gè)個(gè)代碼示例,配以詳細(xì)的注釋詳解,讓初學(xué)者更加清楚STL的用法,對(duì)于剛學(xué)完基礎(chǔ)知識(shí)想要夯實(shí)基礎(chǔ)的同學(xué)非常有價(jià)值。
到這里,介紹了幾個(gè)比較適合初學(xué)者的開源項(xiàng)目,這些比較適合剛撇下書本,需要用一些實(shí)戰(zhàn)項(xiàng)目來(lái)練手、提升自己對(duì)理論知識(shí)印象和理解的同學(xué),下面再介紹幾個(gè)進(jìn)階實(shí)戰(zhàn)的開源項(xiàng)目。
Cytopia
地址:https://link.juejin.cn/?target=https%3A%2F%2Fgithub.com%2FCytopiaTeam%2FCytopia
Star:1.4k
Cytopia是一個(gè)免費(fèi)的、開源的復(fù)古像素藝術(shù)城市建設(shè)游戲,它采用了基于SDL2的自定義等距渲染引擎。
在這個(gè)項(xiàng)目中涉及到游戲開發(fā)中的很多關(guān)鍵因素,例如,渲染引擎、UI系統(tǒng)、攝像機(jī)平移縮放、地形操作、聲音效果等等。
這是一個(gè)比較完整且豐富的開源項(xiàng)目,對(duì)游戲開發(fā)感興趣的同學(xué)可以深入學(xué)習(xí)一下。
OpenTTD
地址:https://link.juejin.cn/?target=https%3A%2F%2Fgithub.com%2FOpenTTD%2FOpenTTD
Star:4.1k
OpenTTD是一款運(yùn)輸模擬游戲,基于Chris Sawyer編寫的流行游戲Transport Tycoon Deluxe。
它試圖盡可能地模仿原來(lái)的游戲,同時(shí)用新的功能來(lái)擴(kuò)展它。
OpenTTD采用GNU通用公共許可證2.0版,但包括一些采用不同許可證的第三方軟件。
devilutionX
地址:https://link.juejin.cn/?target=https%3A%2F%2Fgithub.com%2Fdiasurgical%2FdevilutionX
Star:5.8k
devilutionX是《暗黑破壞神》和《地獄之火》的源碼移植,它努力使游戲的運(yùn)行變得簡(jiǎn)單,同時(shí)提供引擎改進(jìn)、錯(cuò)誤修復(fù)和一些可選的生活質(zhì)量功能。

calculator
地址:https://link.juejin.cn/?target=https%3A%2F%2Fgithub.com%2Fmicrosoft%2Fcalculator
Star:25k
calculator是一個(gè)用C++編寫的Windows計(jì)算器程序,預(yù)裝在Windows中。
沒錯(cuò),就是我們現(xiàn)在在Windows操作系統(tǒng)中使用的那個(gè)計(jì)算器。
該應(yīng)用程序提供了標(biāo)準(zhǔn)、科學(xué)和程序員計(jì)算器的功能,以及一組各種測(cè)量單位和貨幣之間的轉(zhuǎn)換器。
DearPyGui
地址:https://link.juejin.cn/?target=https%3A%2F%2Fgithub.com%2Fhoffstadt%2FDearPyGui
Star:7.9k
DearPYGui是一款用C++開發(fā),適用于Python的快速而強(qiáng)大的圖形用戶界面工具包,具有最小的依賴性。
在這個(gè)項(xiàng)目中,可以學(xué)習(xí)如何使用C++實(shí)現(xiàn)UI界面,進(jìn)行圖形圖像的開發(fā)。

Clementine
地址:https://link.juejin.cn/?target=https%3A%2F%2Fgithub.com%2Fclementine-player%2FClementine
Star:3.2k
Clementine是一款適用于Windows、Linux和macOS的現(xiàn)代音樂播放器和資料庫(kù)組織工具。
通過(guò)這個(gè)項(xiàng)目,我們可以學(xué)習(xí)如何通過(guò)C++處理音頻文件,以及實(shí)現(xiàn)文件的組織與管理。
zeal
地址:https://link.juejin.cn/?target=https%3A%2F%2Fgithub.com%2Fzealdocs%2Fzeal
Star:9.6k
zeal是一款由C++開發(fā)的離線文檔瀏覽和閱讀工具,通過(guò)這個(gè)項(xiàng)目會(huì)涉及到Qt、cmake、libarchive、SQLite等工具的用法。
開源項(xiàng)目這里,我共介紹了10個(gè)項(xiàng)目,涉及到實(shí)戰(zhàn)知識(shí)、游戲開發(fā)、用戶界面、游戲引擎、媒體播放、文檔工具,有比較適合初學(xué)者的,也有適合C++進(jìn)階的,大家可以根據(jù)自己感興趣的方向選擇適合的項(xiàng)目進(jìn)行深入了解和學(xué)習(xí)!

另外為了幫助大家,輕松,高效學(xué)習(xí)C語(yǔ)言/C++,給大家分享我收集的資源,從最零基礎(chǔ)開始的,幫助大家在學(xué)習(xí)C語(yǔ)言的道路上披荊斬棘!
微信公眾號(hào):C語(yǔ)言編程學(xué)習(xí)基地
整理分享(多年學(xué)習(xí)的源碼、項(xiàng)目實(shí)戰(zhàn)視頻、項(xiàng)目筆記,基礎(chǔ)入門教程)最重要的是你可以在群里面交流提問(wèn)編程問(wèn)題哦!
歡迎轉(zhuǎn)行和學(xué)習(xí)編程的伙伴,利用更多的資料學(xué)習(xí)成長(zhǎng)比自己琢磨更快哦!大家也要把握住有限的時(shí)光,抓住成長(zhǎng)的每一次機(jī)會(huì)哦~
編程學(xué)習(xí)書籍分享:

編程粉絲交流:
