如何系统地学习 C/C++ 语言有哪些C++开源项目可以学习呢?
Posted 一起学编程
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何系统地学习 C/C++ 语言有哪些C++开源项目可以学习呢?相关的知识,希望对你有一定的参考价值。
我个人认为,开源项目是学习一门编程语言非常快捷且行之有效的方法。
得益于强大的Github,提供了很多开源优质的项目,在这些项目中,我们可以学习那些优秀程序员的编码方式、学习并借鉴它们的程序设计模式。还能够从这些项目中得到一些灵感,去动手做一些实战项目,让我们从书本的理论知识中走出来,走向贴近实际场景的项目,让我们的技术得到升华可提炼,让我们从一个普通C++程序员进阶到一个高阶C++程序员。
interview
地址:https://link.juejin.cn/?target=https%3A%2F%2Fgithub.com%2Fhuihut%2Finterview
Star:24.4k
C/C++ 技术面试基础知识总结,包括语言、程序库、数据结构、算法、系统、网络、链接装载库等知识。
这是一个比较适合初学者的C++项目,沉淀了面试过程中C++相关的一些问题和解答,这些知识相对于书本上的内容,更加贴合项目实战,往往都是实际项目中会遇到的一些问题。
因此,这个项目可以让我们脱离书籍和教程,学到很多有实战价值的C++知识和技巧。
tinytetris
地址:https://link.juejin.cn/?target=https%3A%2F%2Fgithub.com%2Ftaylorconor%2Ftinytetris
Star:1.7k
这是一个利用C++实现的俄罗斯方块的小项目,相对于那些大型项目,这个项目对初学者比较轻松,而且把C++和耳熟能详的游戏开发有机的结合到一起,这会让学习者有更加直观的感受,也有更加强烈的代入感,能够把学习者的注意力吸引到程序的设计过程中。例如,如何实现方块图像?如何实现方块的移动和选择?如何实现消除和积分功能?
这些抛出的问题在这个小项目中都可以找到解答。
MyTinySTL
地址:https://link.juejin.cn/?target=https%3A%2F%2Fgithub.com%2FAlinshans%2FMyTinySTL
Star:6.3k
就如同前面介绍的那样,STL是C++中很重要的组成部分,是学习C++无法绕开的概念。
MyTinySTL通过一个个代码示例,配以详细的注释详解,让初学者更加清楚STL的用法,对于刚学完基础知识想要夯实基础的同学非常有价值。
到这里,介绍了几个比较适合初学者的开源项目,这些比较适合刚撇下书本,需要用一些实战项目来练手、提升自己对理论知识印象和理解的同学,下面再介绍几个进阶实战的开源项目。
Cytopia
地址:https://link.juejin.cn/?target=https%3A%2F%2Fgithub.com%2FCytopiaTeam%2FCytopia
Star:1.4k
Cytopia是一个免费的、开源的复古像素艺术城市建设游戏,它采用了基于SDL2的自定义等距渲染引擎。
在这个项目中涉及到游戏开发中的很多关键因素,例如,渲染引擎、UI系统、摄像机平移缩放、地形操作、声音效果等等。
这是一个比较完整且丰富的开源项目,对游戏开发感兴趣的同学可以深入学习一下。
OpenTTD
地址:https://link.juejin.cn/?target=https%3A%2F%2Fgithub.com%2FOpenTTD%2FOpenTTD
Star:4.1k
OpenTTD是一款运输模拟游戏,基于Chris Sawyer编写的流行游戏Transport Tycoon Deluxe。
它试图尽可能地模仿原来的游戏,同时用新的功能来扩展它。
OpenTTD采用GNU通用公共许可证2.0版,但包括一些采用不同许可证的第三方软件。
devilutionX
地址:https://link.juejin.cn/?target=https%3A%2F%2Fgithub.com%2Fdiasurgical%2FdevilutionX
Star:5.8k
devilutionX是《暗黑破坏神》和《地狱之火》的源码移植,它努力使游戏的运行变得简单,同时提供引擎改进、错误修复和一些可选的生活质量功能。
calculator
地址:https://link.juejin.cn/?target=https%3A%2F%2Fgithub.com%2Fmicrosoft%2Fcalculator
Star:25k
calculator是一个用C++编写的Windows计算器程序,预装在Windows中。
没错,就是我们现在在Windows操作系统中使用的那个计算器。
该应用程序提供了标准、科学和程序员计算器的功能,以及一组各种测量单位和货币之间的转换器。
DearPyGui
地址:https://link.juejin.cn/?target=https%3A%2F%2Fgithub.com%2Fhoffstadt%2FDearPyGui
Star:7.9k
DearPYGui是一款用C++开发,适用于Python的快速而强大的图形用户界面工具包,具有最小的依赖性。
在这个项目中,可以学习如何使用C++实现UI界面,进行图形图像的开发。
Clementine
地址:https://link.juejin.cn/?target=https%3A%2F%2Fgithub.com%2Fclementine-player%2FClementine
Star:3.2k
Clementine是一款适用于Windows、Linux和macOS的现代音乐播放器和资料库组织工具。
通过这个项目,我们可以学习如何通过C++处理音频文件,以及实现文件的组织与管理。
zeal
地址:https://link.juejin.cn/?target=https%3A%2F%2Fgithub.com%2Fzealdocs%2Fzeal
Star:9.6k
zeal是一款由C++开发的离线文档浏览和阅读工具,通过这个项目会涉及到Qt、cmake、libarchive、SQLite等工具的用法。
开源项目这里,我共介绍了10个项目,涉及到实战知识、游戏开发、用户界面、游戏引擎、媒体播放、文档工具,有比较适合初学者的,也有适合C++进阶的,大家可以根据自己感兴趣的方向选择适合的项目进行深入了解和学习!
另外为了帮助大家,轻松,高效学习C语言/C++,给大家分享我收集的资源,从最零基础开始的,帮助大家在学习C语言的道路上披荆斩棘!
有需要的小伙伴可以来我的粉丝群领取这些资料哦!包括零基础入门C++也是有学习资料的。
以上是关于如何系统地学习 C/C++ 语言有哪些C++开源项目可以学习呢?的主要内容,如果未能解决你的问题,请参考以下文章
如何系统地学习 C++ 语言关于C++,有哪些你需要提前知道的知识?
我的C/C++语言学习进阶之旅关于Vcpkg的参考资料:一个让你可以快速引用C++开源库的包管理工具Vcpkg,快来使用Vcpkg管理你的C++ 项目中的依赖项吧!
我的C/C++语言学习进阶之旅关于Vcpkg的参考资料:一个让你可以快速引用C++开源库的包管理工具Vcpkg,快来使用Vcpkg管理你的C++ 项目中的依赖项吧!
我的C/C++语言学习进阶之旅关于Vcpkg的参考资料:一个让你可以快速引用C++开源库的包管理工具Vcpkg,快来使用Vcpkg管理你的C++ 项目中的依赖项吧!