雷达智富

首页 > 内容 > 程序笔记 > 正文

程序笔记

有哪些C/C++的开源项目可以给系统的学习C/C++语言做参考呢?

2024-08-09 71

前言

看开源项目的源码是学习一门编程语言非常快捷且行之有效的方法。Github提供了很多优质的开源项目,在这些项目中,我们可以学习全球的优秀程序员的编码方式和思维,学习并借鉴他们的程序设计模式。还能够从这些项目中得到一些灵感,用于实战项目中,让我们从书本的理论知识中走出来,走向贴近实际场景的项目,还可以让我们的技术得到升华可提炼,从一个普通C++程序员进阶到一个高阶C++程序员。接下来给大家介绍几个优质的C/C++开源项目。

interview(面试基础)

  • 地址:https://github.com/huihut/interview
  • Star:25.8k(截止2022年9月18日)
  • C/C++ 技术面试基础知识总结,包括语言、程序库、数据结构、算法、系统、网络、链接装载库等知识和面试经验。这是一个比较适合初学者的C++项目,沉淀了面试过程中C++相关的一些问题和解答,这些知识相对于书本上的内容,更加贴合项目实战,往往都是实际项目中会遇到的一些问题。
  • 因此,这个项目可以让我们脱离书籍和教程,学到很多有实战价值的C++知识和技巧。

calculator

  • 地址:https://github.com/microsoft/calculator
  • Star:25.6k(截止2022年9月18日)
  • calculator是一个用C++编写的在Windows中运行的计算器,预装在Windows中。也就是我们在Windows操作系统中使用的那个计算器。这个程序提供了标准、科学和程序员计算器的功能,以及一组各种测量单位和货币之间的转换器。微软将这个计算器程序开源到了GitHub。

zeal

  • 地址:https://github.com/zealdocs/zeal
  • Star:9.8k(截止2022年9月18日)
  • zeal是一款用C++语言开发的离线文档浏览和阅读工具,这个项目涉及到Qt、cmake、libarchive、SQLite等工具和库的用法。有需要学习这几种工具的程序员可以看一下这个项目的源码。

DearPyGui

  • 地址:https://github.com/hoffstadt/DearPyGui
  • Star:8.7k(截止2022年9月18日)
  • DearPYGui一款用C++开发的易于使用、动态、GPU加速、跨平台的Python图形用户界面工具包(GUI)。功能包括传统的GUI元素,如按钮、单选按钮、菜单和创建功能布局的各种方法。此外,它具有令人难以置信的动态绘图、表格、图形、调试器和多个资源查看器。非常适合于创建简单的用户界面以及开发复杂且要求苛刻的图形界面。为开发科学、工程、游戏、数据科学和其他需要快速交互界面的应用程序提供了坚实的框架。这个项目中,可以学习如何使用C++实现UI界面,进行图形图像的开发。

MyTinySTL

  • 地址:https://github.com/Alinshans/MyTinySTL
  • Star:7.1k(截止2022年9月18日)
  • STL是C++中很重要的组成部分,是学习C++无法绕开的库。MyTinySTL通过简单的示例代码,配以详细的注释介绍,让初学者更加清楚STL的用法。对于刚学完C++基础知识想要夯实基础的同学非常有价值。

devilutionX

  • 地址:https://github.com/diasurgical/devilutionX
  • Star:6k(截止2022年9月18日)
  • devilutionX是《地狱之火》和《暗黑破坏神》两款游戏的源码移植,它尝试使游戏的运行变得更简单,同时提供引擎改进、错误修复和一些可选的生活质量特征。想用C++做游戏开发可以看看这个项目。

OpenTTD

  • 地址:https://github.com/OpenTTD/OpenTTD
  • Star:4.3k(截止2022年9月18日)
  • OpenTTD是一款运输模拟游戏,基于Chris Sawyer编写的流行游戏Transport Tycoon Deluxe。它试图尽可能地模仿原来的游戏,同时用新的功能来扩展它。OpenTTD采用GNU通用公共许可证2.0版,但包括一些采用不同许可证的第三方软件。

Clementine

  • 地址:https://github.com/clementine-player/Clementine
  • Star:3.3k(截止2022年9月18日)
  • Clementine是一款适用于Windows、Linux和macOS的现代音乐播放器和资料库组织工具。通过这个项目,可以学习如何通过C++处理音频文件,以及实现文件的组织与管理。

tinytetris

  • 地址:https://github.com/taylorconor/tinytetris
  • Star:1.9k(截止2022年9月18日)
  • 这是一个利用C++实现的俄罗斯方块游戏的项目,相对于大型项目,这个项目对初学者来说比较轻松,而且把C++和经典的游戏开发有机的结合到一起,这会让学习者有更加直观的感受,也有更加强烈的代入感,能够把学习者的注意力吸引到程序的设计过程中。例如,如何显示方块图像,如何实现方块的移动和旋转,如何实现消除和积分功能等。这些问题都可以在这个项目中都可以找到答案。

Cytopia

  • 地址:https://github.com/CytopiaTeam/Cytopia
  • Star:1.5k(截止2022年9月18日)
  • Cytopia是一个免费的、开源的复古像素艺术城市建设游戏,它采用了基于SDL2的自定义等距渲染引擎。在这个项目中涉及到游戏开发中的很多关键因素,例如,渲染引擎、UI系统、摄像机平移缩放、地形操作、声音效果等等。这是一个比较完整且丰富的开源项目,对游戏开发感兴趣的同学可以深入学习一下。

结语

这里共介绍了10个开源项目,涉及到面试基础,实战知识,游戏开发,用户界面(GUI),游戏开发,媒体播放,文档工具。有些比较适合初学者,有些适合C++进阶,大家可以根据自己实际情况选择适合的项目进行学习。

更新于:3个月前
赞一波!4

文章评论

评论问答